我希望将函数的返回值的输出扩展为一组列表。直接从函数的返回列表中扩展列表
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())
但是多个列表呢。 创建临时变量不是首选。
我希望将函数的返回值的输出扩展为一组列表。直接从函数的返回列表中扩展列表
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())
但是多个列表呢。 创建临时变量不是首选。
为什么不能传递给函数的两个参数
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
这感觉不对,函数并不真正关心输入,它只是追加... –
@KarolyHorvath我明白你的意思,但OP是分配/想要使用返回值,所以我建议了一些在该模式下工作 – Pynchia
人们希望做各种奇怪的事情,帮助做到这一点不一定是个好主意。 –
如果这个问题更一般,而且你不能修改你的功能,请使用zip
:
>>> f,g = (x+y for x,y in zip((f,g), func()))
>>> f
[1, 2, -1, 2]
>>> g
[3, 4, 4, 1]
“创建临时变量不被优先选择。” - 为什么不呢?你是否需要在某个维度上扩展这个范围,或许是一次扩展一些N个列表而不是两个?几乎任何解决方案都需要临时变量,但我们仍然可以尝试尽可能使其变得干净。 – user2357112
创建临时变量 –
在python中,您可以简单地使用'+'运算符来扩展列表。这应该是一个很好的起点。 – ishaan