让我们考虑一个正常的功能:
def function(stuff):
return result
要调用它并将结果输入变量:
variable = function(stuff)
我也可以使用3(例如)结果:
def function(stuff):
return result1, result2, result3
要调用它并将结果输入3个变量:
variable1, variable2, variable3 = function(stuff)
我的问题是:当我设置一个名为"结果数"的变量时,如何编写一个自动读取和更改的函数。或者,在我的实际情况中,"结果数量"将取决于我的变量的长度(变量stuff是一个数组列表)。
我希望以前没有回答过这个问题。
答案 0 :(得分:4)
您可以使用所需的元素数创建list
,然后return tuple(yourList)
。
但是,您可以直接返回list
。 Python惯用的并不关心东西的返回类型,所以任何寻找像tuple
这样的迭代的调用者都可以迭代list
。
还可以解压缩list
:
>>> foo(3)
[1, 2, 3]
>>> a, b, c = foo(3)
>>> a
1
>>> b
2
>>> c
3
答案 1 :(得分:2)
只需构造并返回结果的容器(例如tuple
或list
):
例如:
import random
def function(stuff):
number_of_results = random.randrange(1, 4)
results = tuple(random.randint(0, 100) for _ in range(number_of_results))
return results
for _ in range(5):
print(function(None))
示例输出:
(0, 28)
(66,)
(62, 63, 88)
(99, 89, 67)
(87, 91)
如果要将值return
分配给单独的变量,您可以,但知道将返回多少函数将是必要的。例如,如果你以某种方式知道提前它会返回三件事,你可以写:variable1, variable2, variable3 = function(stuff)
。出于这个原因,最好只希望它在调用函数后返回容器并处理其内容。