2017-06-26 7 views
-1

Ich weiß, dass diese Liste ein veränderbares Objekt in Python ist. Warum weist es dann eine neue Position für eine Listenvariable zu, wenn ich Listenelemente verkette. Warum fügt myList nicht den Inhalt des ursprünglichen Objekts hinzu, anstatt ein neues Objekt zu erstellen?Liste Verkettung in Python

list1=[1,2,3,4,5] 
def proc(myList): 
    myList = myList + [6, 7] 
    print(myList) 


print (list1) 
proc(list1) 
print (list1) 

Antwort

3

Da die Zuordnung nicht mutiert, wird sie erneut gebunden.

myList.extend([6, 7]) 
+0

oder 'myList + = [6, 7]' - was auch immer sein Boot schwimmt – Wondercricket

+0

Können Sie Rebind erklären? Auch was ist der Unterschied zwischen append und extend? – metasj

+0

https://stackoverflow.com/questions/9073995/difference-between-mutation-reblinding-copying-value-and-assignment-operator –