0
我有這樣的代碼:公開程度的函數
def h(l1,l2):
l1.pop()
l2 = l2 +l1
l1=[1,2,3]
l2=[]
h(l1,l2)
print (l1,l2)
爲什麼運行的代碼後,L 1是[1,2]和L2保持相同([])爲什麼L2爲[1,2。 ]?
我有這樣的代碼:公開程度的函數
def h(l1,l2):
l1.pop()
l2 = l2 +l1
l1=[1,2,3]
l2=[]
h(l1,l2)
print (l1,l2)
爲什麼運行的代碼後,L 1是[1,2]和L2保持相同([])爲什麼L2爲[1,2。 ]?
因爲l2是你的h函數的本地對象,所以函數外部的l2並不知道你改變了一些其他的變量,即使他們有相同的名字,雖然他們的範圍是不同的。
這是你預期會發生什麼?
def h(l1,l2):
l1.pop()
l2.extend(l1 +l2)
l1=[1,2,3]
l2=[]
h(l1,l2)
print (l1,l2)
>>> '[1, 2] [1, 2]'
在這種情況下,我沒有定義一個新的變量,我正在改變函數內現有的l2。這樣,l2裏面的函數和函數外面實際上是一樣的。