Как вернуть кортеж values1, values2..etc Один за другимКак возвращать значения кортежей из списка
def data():
List = [(1,"xyz",1.2), (1,"sgz",1.2), ...]
return (1,"xyz",1.2), (1,"sgz",1.2), ...
Как вернуть кортеж values1, values2..etc Один за другимКак возвращать значения кортежей из списка
def data():
List = [(1,"xyz",1.2), (1,"sgz",1.2), ...]
return (1,"xyz",1.2), (1,"sgz",1.2), ...
до сих пор не могу понять, почему вы хотели бы сделать это. Но если вы хотите назначить переменные для каждого кортежа в списке, вы можете сделать следующее (учитывая, что вы знаете, сколько элементов в списке есть):
>>> def data():
List = [(1,"xyz",1.2), (1,"sgz",1.2), ...]
return List
>>> a, b, c = data()
>>> a
(1,"xyz",1.2)
>>> b
(1,"sgz",1.2)
Это не то, о чем ОП спрашивает, не говоря уже о том, что для больших 'data()' это решение не будет практичным вообще. – Algo
Использование yield
вместо return
, как это:
>>> def data():
... for i in [(1,"xyz",1.2), (1,"sgz",1.2)]:
... yield i
...
>>> for x in data():
... print(x)
...
(1, 'xyz', 1.2)
(1, 'sgz', 1.2)
Сейчас data()
работает точно так же, как и список - каждый раз, когда вы вызываете data()
, будет возвращен следующий элемент из списка.
Если 'print'ing является решением, зачем использовать генератор? Вы всегда можете сделать 'for i в List: print i' в функции' data() 'вместо' return'ing. – xyres
'return' будет возвращать' (1, "xyz", 1.2), (1, "sgz", 1.2) 'как объект последовательности, который будет последовательно (один за другим). –
return должен быть порядковый порядок кортежей – Kumar
'return tuple (your_list)'. – sobolevn