0

我正在运行 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]]
4

2 回答 2

1

你可以用 来检查返回类型isinstance,虽然它不是很pythonic。

 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)
于 2013-04-18T10:02:07.907 回答
1
sum((list(f()) for f in [f1, f2]), [])
于 2013-04-18T10:15:25.860 回答