我希望函数返回值的输出扩展为一组列表。
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())
但是多个列表呢。
不建议创建临时变量。
答案 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]