生成返回变量

2024-09-28 05:16:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须从函数中返回许多变量:

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)

Tags: 函数代码inforlenreturn格式数组
3条回答

当您“返回多个变量”时,实际上只是返回一个元组。您可以这样做:

return tuple(ar)

甚至

return ar

当然,假设您的数组包含您希望以正确顺序返回的所有内容,并且仅此而已。你知道吗

如果能看到更多的代码就更好了,但是如果可以使用循环填充列表,那么它在语义上就是一个单一的值(同质集合)。你知道吗

您可以这样做:

def func(x):
    # do something
    lis = (#your values)
    return lis
a,b,c,d,e = func(x)

这将返回元组形式的值,并在另一端解包

使用生成器表达式和tuple

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)

请注意,返回tuple并不是必须的,更多关于它的讨论在这里:Python: Return tuple or list?

相关问题 更多 >

    热门问题