Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 124
Elemente mit den Methoden append() und insert() zu Listen hinzufügen
ОглавлениеUm zu einer Liste neue Elemente hinzuzufügen, verwenden Sie die Methoden append() und insert(). Im folgenden Beispiel wird die Methode append() auf die Liste in der Variablen spam angewendet:
>>> spam = ['cat', 'dog', 'bat']
>>> spam.append('moose')
>>> spam
['cat', 'dog', 'bat', 'moose']
Wie Sie sehen, hängt die Methode append() ihr Argument an das Ende der Liste an. Mit insert() dagegen können Sie einen Wert an einer beliebigen Indexposition in der Liste einfügen. Das erste Argument von insert() ist der Index für den neuen Wert, das zweite der einzufügende Wert. Geben Sie Folgendes in die interaktive Shell ein:
>>> spam = ['cat', 'dog', 'bat']
>>> spam.insert(1, 'chicken')
>>> spam
['cat', 'chicken', 'dog', 'bat']
Beachten Sie, dass die korrekte Schreibweise spam.append('moose') bzw. spam.insert(1, 'chicken') lautet und nicht etwa spam = spam.append('moose') oder spam = spam.insert(1, 'chicken'). Weder append() noch insert() geben den neuen Wert von spam zurück. (Der Rückgabewert beider Methoden ist in Wirklichkeit None, und das ist nicht das, was Sie hier als neuen Variablenwert speichern wollen!) Stattdessen wird die Liste unmittelbar geändert. Mehr darüber erfahren Sie im Abschnitt »Veränderbare und unveränderbare Datentypen« weiter hinten in diesem Kapitel.
Methoden gehören jeweils zu einem einzigen Datentyp. So sind append() und insert() Listenmethoden, die nur für Listenwerte aufgerufen werden können, nicht aber für andere Werte wie etwa Strings oder Integer. Wenn Sie Folgendes in die interaktive Shell eingeben, erhalten Sie die Fehlermeldung AttributeError:
>>> eggs = 'hello'
>>> eggs.append('world')
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
eggs.append('world')
AttributeError: 'str' object has no attribute 'append'
>>> bacon = 42
>>> bacon.insert(1, 'world')
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
bacon.insert(1, 'world')
AttributeError: 'int' object has no attribute 'insert'