Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Listen erstellen, Zugriff auf Elemente und Listen-Operationen

Neben den Skalaren wie z.B. x kennt Python den Datentyp der Liste. In diesen Listen können Strings genauso wie auch Zahlen abgelegt werden. Eine Liste ist also eine Verkettung von Daten- bzw. Objekttypen. Listen können an den eckigen Klammern erkannt werden.

Erstellen von Listen

Listen kann man z.B. erstellen, indem man die Elemente angibt / aufzählt:

vornamen = ['anton','bert','caesar','detlef','emil']                   #Inhalt der Liste sind 5 Strings
nachnamen = ['kepler','reinhold','kopernikus','brahe']             #Inhalt der Liste sind 4 Strings
primzahlen = [2,7,5,11,17,23,3]                                           #Inhalt sind 7 Zahlen
gemischte_Liste = ['07318','saalfeld','am lerchenbuehl',17]     #hier sind Strings und Zahlen gemischt
leere_Liste = []                                                                    #eine Liste ohne Elemente, also leer


Zugriff auf die Listenelemente

Die Listenelemente werden der Reihe nach "durchnummeriert", wobei aber bei der Nummerierung mit 0 begonnen wird. D.h. in der Liste vornamen ist 'anton' das 0. Element, 'bert' das 1. Element, 'caesar' das zweite Element usw. Wenn man ein Element der Liste haben will, schreibt man das z.B. so:

zweites = vornamen[2]

Das bedeutet, aus der Liste  vornamen  wird das 2. Element, also 'caesar' in die (Skalar-)Variable  zweites  gesteckt.

Beispiele:

vornamen = ['anton','bert','caesar','detlef','emil']

zweites = vornamen[2]
vornamen[1] = 'boris'
vornamen[0] = zweites
#wir geben die Liste aus, jedes Element in einer Zeile
for element in vornamen:
    print(element)

# die Liste lässt sich auch so ausgeben
print(vornamen)

 

Anzahl der Listenelemente bestimmen

Auf das letzte Beispiel mit nachnamen bezogen würde in anzahl eine 7 stehen. Um auszugeben, wie viele Elemente in der Liste sind:  print( len (nachnamen)). Möchte man die Anzahl in eine Variable schreiben, macht man das so:

anzahl = len(nachnamen)

 

Operationen mit Listen

  • liste.append(Element)           = an eine Liste etwas anhängen
  • liste.insert(Position,Element)   = einer Liste an der Position hinzufügen. Damit rutschen alle Elemente ab dieser Stelle um eins nach hinten!
  • liste.pop(Position)              = von einer Liste das Element an der Position entfernen (wenn keine Position angegeben, dann das letzte Element).
  • liste.remove(Element)            = entfernt aus einer Liste das erste Element, welches gefunden wird.
  • liste.reverse()                  = liefert eine Liste zurück, wobei die Reihenfolge vertauscht ist (das erste Element ist dann das letzte Element).
     
  • liste.extend(liste2)            = hängt der Liste eine andere Liste an.
  • liste3 = liste1 + liste2        = an liste1 wird liste2 angehangen und als liste3 zurückgegeben. liste1 und liste2 werden dabei nicht verändert.
     
  • string = trennzeichen.join(wortliste)  = die Elemente der Liste werden mit dem Trennzeichen zusammengefügt.


Das folgende Programm soll die Nutzung der verschiedenen Operationen demonstrieren:

liste1 = ['anton', 'bert', 'caesar', 'detlef', 'emil']     # in Liste1 sind jetzt 'anton', 'bert', 'caesar', 'detlef', 'emil'
liste1.append('fred')                                           # in Liste1 sind jetzt 'anton', 'bert', 'caesar', 'detlef', 'emil', 'fred'

person = 'ilse'
liste2 = []
liste2.append('gerda')
liste2.append('hans')
liste1.extend(liste2)
liste1.append(person)                                       # in Liste1 sind jetzt 'anton', 'bert', 'caesar', 'detlef', 'emil', 'fred', 'gerda', 'hans', 'ilse'

liste1.pop()                                                     # in Liste1 sind jetzt 'anton', 'bert', 'caesar', 'detlef', 'emil', 'fred', 'gerda', 'hans'
person = liste1.pop()                                       # in Liste1 sind jetzt 'anton', 'bert', 'caesar', 'detlef', 'emil', 'fred', 'gerda'

liste1.reverse()                                               # in Liste1 sind jetzt 'gerda', 'fred', 'emil', 'detlef', 'caesar', 'bert', 'anton'
liste2 = liste1                                                 # in Liste2 sind jetzt 'gerda', 'fred', 'emil', 'detlef', 'caesar', 'bert', 'anton'

liste1.pop(0)                                                   # in Liste1 sind jetzt 'fred', 'emil', 'detlef', 'caesar', 'bert', 'anton'
liste1.remove('fred')                                        # in Liste1 sind jetzt 'emil', 'detlef', 'caesar', 'bert', 'anton'

liste1.append(person)                                       # in Liste1 sind jetzt 'emil', 'detlef', 'caesar', 'bert', 'anton', 'hans'
liste1.append(person)                                       # in Liste1 sind jetzt 'emil', 'detlef', 'caesar', 'bert', 'anton', 'hans', 'hans'

person = liste1.pop(0)                                      # in Liste1 sind jetzt 'detlef', 'caesar', 'bert', 'anton', 'hans', 'hans'
liste1.append(person)                                       # in Liste1 sind jetzt 'detlef', 'caesar', 'bert', 'anton', 'hans', 'hans', 'emil'

liste1.insert(0,'erasmus')                                  # in Liste1 sind jetzt 'erasmus', 'detlef', 'caesar', 'bert', 'anton', 'hans', 'hans', 'emil'
liste1.insert(0,person)                                      # in Liste1 sind jetzt 'emil', 'erasmus', 'detlef', 'caesar', 'bert', 'anton', 'hans', 'hans', 'emil'

# Ausgabe 1
for element in liste1:
  print(element, '',end='')

print('\n')

# Ausgabe 2
print(' '.join(liste1))

 

Das sah dann bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Ergänzen Sie das Programm, indem Sie die Anzahl der Listenelemente ausgeben lassen.
  3. Geben Sie das erste, das dritte und das letzte Element aus.
  4. Das 4. Element (also 'caesar') soll nun durch 'casimir' ersetzt werden. Geben Sie zur Kontrolle die Liste danach wieder aus.
  5. Worin unterscheiden sich die Ausgabe 1 und die Ausgabe 2? Falls Sie es nicht erkennen, ersetzen Sie jeweils das Leerzeichen durch einen Bindestrich und probieren es aus.
  6. Testen Sie folgendes Programm:
    adresse = ['Erasmus-Reinhold-Gymnasium', 07318, 'Saalfeld', 'Am Lerchenbühl 17']
    print(' '.join(adresse))
    
    Erklären Sie das Ergebnis.

 

zurück


© ERG Saalfeld   -   Dustin Wiese     letztes Update: 06.09.2020