Tagebuch-Eintrag #11
Listen verändern
In diesem Tagebuch Eintrag möchte ich nochmal das Thema Listen aufgerufen. Es geht darum Listen zu manipulieren und Listen-Einträge zu verändern.
Listen-Elemente erstellen und ausgeben ist das eine. Doch möchte ich auch Listen-Elementen später an beliebter Stelle hinzufügen und beliebige Elemente entfernen.
Also habe ich mir das Thema Listen in Python nochmal angeschaut und dabei weitere Funktionen neben der bereits bekannten .append-Funktion kennen gelernt.
- extend
- insert
- pop
- remove
Die Listen-Funktionen
Mit .extend kann ich mehrere Elemente an das Ende einer Liste hinzufügen. Diese Elemente müsse vorher jedoch in einer Variable zugewiesen werden. Sonst gibt es eine Fehlermeldung.
test_list = ["Python", "PHP", "HTML", "CSS", "jQuery", "Java Script", "2019", "7.9"]
# .extent: fügt mehrere Werte and das Ende einer Liste hinzu. Diese Werte müssen jedoch in einer Variable gespeichert werden.
# Jeder Wert mit Komma getrennt.
more_in_list = ["C", "C++"]
test_list.extend(more_in_list)
print("C und C++ an das Ende der Liste hinzugefügt mit .extend:\n" + str(test_list))
Mit .insert kann ich einen Wert an einer beliebigen Stelle hinzufügen. Dafür muss erst den Index angeben und danach den Wert: .insert(index,Wert).
# .insert: Einen Wert an einer beliebigen Stelle hinzufügen.
# Erste Stelle (Zahl) ist die Position im Index.
# Die zweite Stelle ist der Wert, der an der genannten Stelle hinzugefügt werden soll.
test_list.insert(1,str(2020))
print("2020 an zweiter Stelle hinzugefügt mit .insert:\n" + str(test_list))
.pop entfernt den letzten Wert aus der Liste wenn kein Index angegeben wird, also: .pop(). Ansonten natürlich den per Index-Nummer angesprochenen Wert.
# .pop entfernt den letzten Wert, wenn kein Index angegeben wird. Ansonsten den Wert, entsprechend dem eingegebenen Index.
test_list.pop(-2)
print("C aus der Liste entfernt mit .pop:")
print(", " .join(test_list))
.remove entfernt einen Wert aus der Liste. Wichtig ist, dass hier nicht der Index angegeben wird, sondern der Wert selbst.
# .remove: Entfernt den genannten Wert. Mehrere Werte in einem Befehlt nicht gültig.
# Nur ein Wert pro Befehl.
test_list.remove("2019")
print("2019 aus der Liste entfernt mit .remove:\n" + str(test_list))
Funktioniert es mit Unterlisten?
Nachdem ich die Funktionen getestet hatte, überlegte ich, ob es wohl auch mit Unterlisten funktionieren würde. Und kurz gesagt, ja es funktioniert wunderbar. 🙂
Ich gehe jetzt mal nicht näher drauf ein und zeige einfach meinen Code dazu. Ich habe es auch für mich kommentiert, damit ich auch nachvollziehen kann, was der einzelne Abschnitt macht.
# Liste mit Unterlisten
location = [["Berlin", "Deutschland"], ["Washington", "USA"], ["Paris", "Frankreich"], ["London", "UK"]]
# Auch Unterlisten können mit .remove entfernt werden.
location.remove(["Berlin", "Deutschland"])
print("Berlin, Deutschland aus der Liste entfernt:\n" + str(location))
# Natürlich ist das hinzufügen auch möglich.
location.insert(2,["Rom", "Italien"])
print("Rom, Italien an 3. Stelle hinzugefügt\n" + str(location))
# Mehrere Unterlisten: Kein Problem über eine Variable.
more_locations = [["Peking", "China"], ["London", "Großbritannien"]]
location.extend(more_locations)
print("Peking, China und London Großbritannien angehängt:\n" + str(location))
location.pop(2)
print("Rom, Italien aus der Liste entfernt:\n" + str(location))