Warum macht das Hinzufügen zu einer Liste andere Dinge? [Duplikat]

13
%Vor%

Ich verstehe nicht, warum eine list += (something) und list = list + (something) verschiedene Dinge macht. Warum teilt += die Zeichenfolge in Zeichen auf, die in die Liste eingefügt werden sollen?

    
kkSlider 13.04.2012, 23:28
quelle

3 Antworten

5

list.__iadd__() kann beliebig iterieren; Es iteriert darüber und fügt jedes Element zur Liste hinzu, wodurch eine Zeichenfolge in einzelne Buchstaben aufgeteilt wird. list.__add__() kann nur eine Liste aufnehmen.

    
Ignacio Vazquez-Abrams 13.04.2012 23:35
quelle
5

aList += 'chicken' ist eine Python-Kurzschrift für aList.extend('chicken') . Der Unterschied zwischen a += b und a = a + b besteht darin, dass Python versucht, iadd mit += aufzurufen, bevor add aufgerufen wird. Dies bedeutet, dass alist += foo für jedes iterable foo funktioniert.

%Vor%     
Nolen Royalty 13.04.2012 23:35
quelle
1

Um Ihr Problem zu lösen, müssen Sie Listen zu Listen hinzufügen, nicht Strings zu Listen.

Versuchen Sie Folgendes:

%Vor%

Beachten Sie, dass alle wie erwartet funktionieren.

    
yamen 13.04.2012 23:39
quelle

Tags und Links