直接从返回的函数列表中扩展列表

时间:2016-01-28 21:23:33

标签: python list

我希望函数返回值的输出扩展为一组列表。

def func():
    return [-1,2],[4,1]
f=[1,2]
g=[3,4]
f,g=func() #How make it append
print f,g

#Expected Output:
[1,2,-1,2] [3,4,4,1]

对于一个列表,我可以f.extend(func())但是多个列表呢。 不建议创建临时变量。

2 个答案:

答案 0 :(得分:4)

为什么不传递函数两个参数

def func(l1 ,l2):
    return l1+[-1,2],l2+[4,1]

f = [1,2]
g = [3,4]
f,g = func(f,g)
print f,g

产生

[1, 2, -1, 2] [3, 4, 4, 1]

但是,让函数扩展列表并完全避免返回值可能更容易

def func(l1 ,l2):
    l1.extend([-1,2])
    l2.extend([4,1])

f = [1,2]
g = [3,4]
func(f,g)
print f,g

答案 1 :(得分:3)

如果此问题更为通用,并且您无法修改功能,请使用zip

>>> f,g = (x+y for x,y in zip((f,g), func()))
>>> f
[1, 2, -1, 2]
>>> g
[3, 4, 4, 1]