我希望將函數的返回值的輸出擴展爲一組列表。直接從函數的返回列表中擴展列表
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