Python 生成用于返回的变量
我必须从函数中返回许多变量:Python 生成用于返回的变量,python,return,multiple-results,Python,Return,Multiple Results,我必须从函数中返回许多变量: a = 5 b = 6 c = 8 d = 6 ... return a,b,c,d,e,f,g,h 问题是我想通过数组来保存代码行: for (...): ar[x] = ... # For x = a,b,c,d,e, ... 但是我必须以“returna,b,c,d,e”的格式返回变量,我不想把它写成: return ar[a], ar[b], ar[c], ... 我可以用发电机吗?怎么用?比如: return item for item in l
a = 5
b = 6
c = 8
d = 6
...
return a,b,c,d,e,f,g,h
问题是我想通过数组来保存代码行:
for (...):
ar[x] = ... # For x = a,b,c,d,e, ...
但是我必须以“returna,b,c,d,e”的格式返回变量,我不想把它写成:
return ar[a], ar[b], ar[c], ...
我可以用发电机吗?怎么用?比如:
return item for item in len(ar)
当您“返回多个变量”时,实际上只是返回一个元组。您可以这样做:
return tuple(ar)
def func(x):
# do something
lis = (#your values)
return lis
a,b,c,d,e = func(x)
甚至
return ar
当然,假设您的数组包含您希望以正确顺序返回的所有内容,并且仅此而已
看到更多的代码会很好,但如果您可以使用循环填充该列表,那么它在语义上就是一个值(同质集合)。当您“返回多个变量”时,实际上只是返回一个元组。您可以这样做:
return tuple(ar)
def func(x):
# do something
lis = (#your values)
return lis
a,b,c,d,e = func(x)
甚至
return ar
当然,假设您的数组包含您希望以正确顺序返回的所有内容,并且仅此而已
看到更多的代码会很好,但如果您可以使用循环填充该列表,那么它在语义上仍然是一个值(同质集合)。使用生成器表达式和
元组
:
return tuple(ar[x] for x in (a,b,c,d,e))
如果索引是连续的,则可以使用切片:
return tuple(ar[2:8]) #If `ar` is a already a tuple then remove the tuple call
如果要返回整个元组/列表本身,只需按原样返回即可:
return ar #or return tuple(ar)
请注意,返回一个
元组
并不是必须的,此处将对此进行更多讨论:使用生成器表达式和元组
:
return tuple(ar[x] for x in (a,b,c,d,e))
如果索引是连续的,则可以使用切片:
return tuple(ar[2:8]) #If `ar` is a already a tuple then remove the tuple call
如果要返回整个元组/列表本身,只需按原样返回即可:
return ar #or return tuple(ar)
请注意,返回一个元组不是强制性的,请在此处进行更多讨论:您可以执行以下操作:
return tuple(ar)
def func(x):
# do something
lis = (#your values)
return lis
a,b,c,d,e = func(x)
这将以元组形式返回值,并在另一端解包。您可以执行以下操作:
return tuple(ar)
def func(x):
# do something
lis = (#your values)
return lis
a,b,c,d,e = func(x)
def values():
a = 3
b = 5
c = 9
d = 3
e = 5
return(a, b, c, d, e)
a1 = values()
print list(a1)
这将以元组的形式返回值,并在另一端解包
def values():
a = 3
b = 5
c = 9
d = 3
e = 5
return(a, b, c, d, e)
a1 = values()
print list(a1)
您可以编辑上面的函数来返回变量的元组
tuple(a,b,c,d,e)
您可以编辑上面的函数来返回变量的元组
tuple(a,b,c,d,e)
谢谢,我不知道tuple的事谢谢,我不知道tuple的事