如何获得"回报数"一个变量

时间:2017-07-12 18:11:08

标签: python function variables

让我们考虑一个正常的功能:

def function(stuff):
    return result

要调用它并将结果输入变量:

variable = function(stuff)

我也可以使用3(例如)结果:

def function(stuff):
    return result1, result2, result3

要调用它并将结果输入3个变量:

variable1, variable2, variable3 = function(stuff)

我的问题是:当我设置一个名为"结果数"的变量时,如何编写一个自动读取和更改的函数。或者,在我的实际情况中,"结果数量"将取决于我的变量的长度(变量stuff是一个数组列表)。

我希望以前没有回答过这个问题。

2 个答案:

答案 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)

只需构造并返回结果的容器(例如tuplelist):

例如:

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)。出于这个原因,最好只希望它在调用函数后返回容器并处理其内容。