Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取可变数量的输出_Python_Python 2.7 - Fatal编程技术网

Python 如何读取可变数量的输出

Python 如何读取可变数量的输出,python,python-2.7,Python,Python 2.7,我正在运行python 2.7.3。我有一个调用每个函数的函数列表。有些函数返回多个输出。我想将所有函数的所有输出保存在一个列表中。我该怎么做 def f1(): return [1,2], [3,4] def f2(): return [5,6] my_outputs = [] my_funcs = [f1, f2] for func in my_funcs: output_list* = func() # does this work? # a,b,c...

我正在运行python 2.7.3。我有一个调用每个函数的函数列表。有些函数返回多个输出。我想将所有函数的所有输出保存在一个列表中。我该怎么做

def f1():
    return [1,2], [3,4]
def f2():
    return [5,6]
my_outputs = []
my_funcs = [f1, f2]
for func in my_funcs:
    output_list* = func() # does this work?
    # a,b,c... = func()
    my_outputs.extend(output_list)

print my_outputs
[[1,2], [3,4], [5,6]]

您可以使用
isinstance
检查返回类型,尽管它不是很python

 my_outputs = []
 my_funcs = [f1, f2, f3]
 for func in my_funcs:
    result = func()
    if isinstance(result, tuple):
        my_outputs.extend(result)
    else:
        my_outputs.append(result)

我把美元赌在甜甜圈上。这在官方教程中有介绍。试一试,你就会知道。你的意思是,当函数返回一个序列时,你想扩展列表,当函数只返回一个值时,你想追加列表?返回多个值的函数只返回一个值,实际上是一个
tuple()
(就我个人而言,我只是清理设计,以便所有函数返回序列,而不是具有不同的“签名”)@millimoose我无法清理设计,因为我使用的是一个库这会将一个元组附加到列表中使用我的输出。extend(func())实际上,输出总是列表,所以只需要检查元组then@siamii你把我弄糊涂了,如果结果总是
元组
列表
,你可以使用
my_outputs.extend(func())
结果是一个列表或多个列表
sum((list(f()) for f in [f1, f2]), [])