2016-11-18 3 views
0

Ich verstehe den folgenden Code nicht in PythonWie funktioniert das folgende Python-Code-Snippet?

l = [] 
l += [1],[2] 
print l # this gives [[1],[2]] 

, jedoch

l = [] 
l = l + [1],[2] 
print l # this gives ([2], [3]) 

Kann jemand den Grund des obigen Verhalten erklären? Ich benutze Python 2.7

Danke.

+0

Wenn ich es versuche gibt es zurück: '([1], [2])' – mitoRibo

Antwort

0

Wenn Sie schreiben

l = l + [1],[2] 

dann

l+[1] 

zuerst auf der rechten Seite ausgewertet wird, vereinfacht die Auswertung

l = [1],[2] 

die als Tupel interpretiert wird, und eine Neuzuweisung des Namens "l". In Ihrem ersten Ausdruck wird das Tupel der Listen auf der rechten Seite nacheinander angehängt, und der Name "l" bleibt eine Liste.

Verwandte Themen