User Tools

Site Tools


struct_py_list

lists in Python3

Zwar wurde Objektorientiertes Programmieren auf der Startseite explizit ausgenommen, jedoch muss hier etwas vorgegriffen werden. Listen, Sets, Tupeln und Dictionaries sind in Python3 Objekte. Objekte können wiederum Funktionen haben. Ob das letztendlich Objekte oder sonst was ist tut aber hier letztendlich nichts zur Sache.

Methoden von Listen

list.append(element)

Wie der Name schon sagt, hängt diese Methode ein zusätzliches Element am Ende der Liste hinzu.

# Eine befüllte Liste anlegen
list = [0, 1, 1, 2, 3, 5, 8] 
# Die Liste ausgeben
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8]
# Ein Element anhängen
list.append(13)
# Die veränderte Liste ausgeben
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]

list.extend(other_list)

Damit wird eine Liste mit einer anderen Liste erweitert.

# Zwei Listen anlegen
list1 = [0, 1, 1, 2]
list2 = [3, 5, 8, 13]
 
# list1 um list2 erweitern
list1.extend(list2)
 
# Ausgabe der beiden Listen
print(list1) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]
print(list2) # Die Ausgabe wird sein: [3, 5, 8, 13]

list.insert(index, element)

Anders als bei append wird das neue Element nicht am Ende angehängt, sondern an einer bestimmten Position eingefügt. Vorsicht: Das erste Element ist das Element mit dem Index 0

# Liste mit fehlender drei anlegen
list = [0, 1, 1, 2, 5, 8, 13]
# Die Liste ausgeben
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 5, 8, 13]
# An Position 4 wird ein Element mit dem Wert 3 eingehängt
list.insert(4, 3)
# Die veränderte Liste ausgeben
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]

list.remove(element)

Damit wird das erste gefundene Element entfernt. Wird ein Element entfernt, welches nicht in der Liste ist, wird ein ValueError ausgelöst. Das Programm würde stoppen, wenn man das nicht gesondert behandelt.
Wir man derartige Fehler abfängt, so dass das Programm weiter läuft, wird unter Fehlerbehandlung mit Python beschrieben

# Eine Liste anlegen
list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
print(list) # Die Ausgabe wird sein: [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
# Element entfernen
list.remove(123533219) 
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]
# Die nächste Zeile wirft einen ValueError und das Programm stoppt
list.remove(123533219)
# Diese Zeile wird nicht mehr ausgeführt
print(list)

list.pop([index])

Löst das Element am gegebenen Index aus der Liste heraus und gibt es, anders als remove, zurück. Der Index ist optional (Deshalb die eckigen Klammern). Wird keiner angegeben wird das letzte Element aus der Liste gelöst.

# Eine Liste anlegen
list = [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
print(list) # Die Ausgabe wird sein: [0, 1, 1, 123533219, 2, 3, 5, 8, 13]
# Element am Index 3 entfernen
removedElement = list.pop(3) 
# Das entfernte Element ausgeben
print("Das entfernte Element ist: "+str(removedElement))
print(list) # Die Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]

list.index(element)

Diese Methode liefert den ersten Index an dem das übergebene Element liegt zurück. Wird keines gefunden, so wird wieder ein ValueError ausgelöst. Wieder stoppt das Programm, wenn man den Fehler nicht abfängt.
Wir man derartige Fehler abfängt, so dass das Programm weiter läuft, wird unter Fehlerbehandlung mit Python beschrieben

# Liste anlegen
list = [0, 1, 1, 2, 3, 5, 8, 13]
# Liste ausgeben
print(list)
indexOfOne = list.index(1)
print("Der Index von 1 ist "+str(indexOfOne))
# Bei der nächsten Zeile stoppt das Programm und meldet, dass 12 nicht in der Liste ist
indexOfError = list.index(12) 
# Diese Zeile wird nicht mehr ausgeführt
print("Der Index von 12 ist "+str(indexOfError)) 

list.sort()

Drei mal darst du raten, was diese Methode macht :-)

# Liste anlegen
list = [13, 8, 5, 3, 2, 1, 1, 0]
# Liste ausgeben
print(list) # Ausgabe wird sein: [13, 8, 5, 3, 2, 1, 1, 0]
# Liste sortieren
list.sort()
# Die sortierte Liste ausgeben
print(list) # Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]

list.reverse()

Diese Methode dreht die Liste um

# Liste anlegen
list = [0, 1, 1, 2, 3, 5, 8, 13]
# Liste ausgeben
print(list) # Ausgabe wird sein: [0, 1, 1, 2, 3, 5, 8, 13]
# Liste umdrehen
list.reverse()
# Die umgedrehte Liste ausgeben
print(list) # Ausgabe wird sein: [13, 8, 5, 3, 2, 1, 1, 0]

Slicing

Python lässt ein recht einfaches zuschneiden der Elemente zu. Es wird ein von-Index und ein bis-exklusive-Index angegeben

<code python>
# Liste anlegen
list = [0, 1, 1, 2, 3, 5, 8, 13]
 
# Ausgabe vom ersten bis exklusive sechsten Element
print(list[1:6])
# Ausgabe vom ersten bis exklusive siebten Element, aber dann doch nur jedes zweite
print(list[1:7:2])
 
# Es gibt viele Slicingspezialitäten wie beispielsweise:
print(list[::-1))
struct_py_list.txt · Last modified: 2017/06/29 18:05 by gg