3. Lists

  • Lists werden mit eckigen Klammern [] definiert und Elemente werden durch ein Komma , getrennt

3.1. Listen definieren

leere Liste

Laender = []
print(Laender)
[]
Laender = list()
print(Laender)
[]

mit Inhalt

Laender = ["USA","Frankreich","Schweden","Polen"]
print(Laender)
['USA', 'Frankreich', 'Schweden', 'Polen']
Zahlen = [4,2,1,5,6]
print(Zahlen)
[4, 2, 1, 5, 6]

3.2. Länge der Listen bestimmen

mit len() wird die Anzahl der Elemente einer Liste bestimmt

len(Zahlen)
5

3.3. Index des Elements in Liste bestimmen

index()

Laender.index("Frankreich")
1

3.4. Listen-Elemente abrufen

Der Index der Listelemente beginnt bei 0

erstes Element: [0]

Laender[0]
'USA'

zweites Element: [1]

Laender[1]
'Frankreich'

letztes Element: [-1]

Laender[-1]
'Polen'

vorletztes Element: [-1]

Laender[-2]
'Schweden'

Erstes bis drittes Element [0:3]
erste Indexzahl ist inklusive, die zweite ist exklusive!!

Laender[0:3]
['USA', 'Frankreich', 'Schweden']

Alle ab dem zweiten Element [1:]

Laender[1:]
['Frankreich', 'Schweden', 'Polen']

Alle bis zum zweiten Element [:2]

Laender[:2]
['USA', 'Frankreich']

3.5. Listen-Elemente hinzufügen

append() mit einem Element

Laender.append('Schweiz')
print(Laender)
['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz']

append() mit zwei Elementen (also einer neuen Liste)
Erstellt eine List innerhalb einer Liste!

Laender.append(['Japan','China'])
print(Laender)
['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China']]

extend() mit einem Listenelement –> gleiche Ergebnis wie mit append()

Laender.extend(['Ukraine'])
print(Laender)
['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine']

extend() mit zwei Listenelementen –> fügt auch mehrere Element hinzu ohne Liste innerhalb einer Liste zu erstellen

Laender.extend(['Mexiko','Kanada'])
print(Laender)
['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada']

insert() fügt ein Element an einer definierten Position hinzu

print('vor insert: ',Laender,'\n')
Laender.insert(2,'Südafkrika')
print('nach insert: ',Laender)
vor insert:  ['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada'] 

nach insert:  ['USA', 'Frankreich', 'Südafkrika', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada']

3.6. Listen-Elemente entfernen

mit remove kann ein Element entfernt werden

print('vor remove: ',Laender,'\n')
Laender.remove('Südafkrika')
print('nach remove: ',Laender)
vor remove:  ['USA', 'Frankreich', 'Südafkrika', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada'] 

nach remove:  ['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada']

pop() entfernt Element mit dem jeweiligen Index und gibt diese gleich aus

print('Vor pop: ',Laender,'\n')
Laender_dropped = Laender.pop(5)
print('entferntes Element: ',Laender_dropped,'\n')
print('nach pop: ',Laender)
Vor pop:  ['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', ['Japan', 'China'], 'Ukraine', 'Mexiko', 'Kanada'] 

entferntes Element:  ['Japan', 'China'] 

nach pop:  ['USA', 'Frankreich', 'Schweden', 'Polen', 'Schweiz', 'Ukraine', 'Mexiko', 'Kanada']

3.7. Listen sortierten

reverse() invertiert die Reihenfolge

Laender.reverse()
print(Laender)
['Kanada', 'Mexiko', 'Ukraine', 'Schweiz', 'Polen', 'Schweden', 'Frankreich', 'USA']

sort() sortiert aufsteigend

Laender.sort()
print(Laender)
['Frankreich', 'Kanada', 'Mexiko', 'Polen', 'Schweden', 'Schweiz', 'USA', 'Ukraine']
Zahlen.sort()
print(Zahlen)
[1, 2, 4, 5, 6]

sort(reverse=True) sortiert absteigend

Laender.sort(reverse=True)
print(Laender)
['Ukraine', 'USA', 'Schweiz', 'Schweden', 'Polen', 'Mexiko', 'Kanada', 'Frankreich']
Zahlen.sort(reverse=True)
print(Zahlen)
[6, 5, 4, 2, 1]

3.8. Sonderfall: string in List umwandeln

Um ein string kann es hilfreich sein diesen mit split() in eine Liste aufzuteilen

Datum="20.01.1996"
Datum.split(".")
['20', '01', '1996']
Tag = Datum.split(".")[0]
Monat = Datum.split(".")[1]
Jahr = Datum.split(".")[2]
print(Tag)
print(Monat)
print(Jahr)
20
01
1996

mit join() können diese dann wieder zusammengefügt werden

'.'.join([Tag,Monat,Jahr])
'20.01.1996'

oder auch:

Datum.split(".")
['20', '01', '1996']

3.9. Prüfen ob Element in Liste ist (Membership test)

Hinweis: für diese Art von Abfragen sind `sets` deutlich effizienter
'Schweden' in Laender
True
'Deutschland' in Laender
False

3.10. Schleifen über Listen

ohne Index

for Land in Laender:
    print(Land)
Ukraine
USA
Schweiz
Schweden
Polen
Mexiko
Kanada
Frankreich

mit Index mit Hilfe von enumerate()

for index,Land in enumerate(Laender):
    print(index,Land)
0 Ukraine
1 USA
2 Schweiz
3 Schweden
4 Polen
5 Mexiko
6 Kanada
7 Frankreich