Listen sind ein mächtiges Werkzeug von Python. Immer wenn wir mehrere Werte haben, können wir diese in einer Liste sammeln. Dabei brauchen wir nicht jedem Wert einen Namen zu geben und es spielt auch keine Rolle wieviele Einträge diese Liste hat – sie kann leer sein oder einige-tausend Werte beinhalten.

Definieren

Eine Liste definieren wir in Python mit eckigen Klammern. Einzelne Werte werden durch Kommas getrennt:

farben = ["red", "green", "blue"]
primzahlen = [2, 3, 5, 7, 11, 13]
leer = []
1
2
3

Elemente

Die Elemente einer Liste sind mit einem sogenannten index nummeriert. Das erste Element hat den Index 0 (nicht 1!). Man kann auf die einzelnen Elemente zugreifen, indem man ihre Nummer angibt. Aber Achtung: greift man auf einen Index ausserhalb der Liste zu (also eine zu grosse Nummer), dann gibt es einen Error!

farben = ["red", "green", "blue"]
print(farben[0])
print(farben[3])
print(farben[-1])
1
2
3
4

Mit einem negativem Index kann auf Elemente der Liste von rechts, also sozusagen rückwärts abgezählt, zugegriffen werden.

Länge

Manchmal möchte man wissen, wie viele Elemente in einer Liste sind. Dazu kann man die Länge einer Liste abfragen:

farben = ["red", "green", "blue"]
print(len(farben))
1
2

Hinweis

Die Elemente einer Liste der Länge 3 haben die Indizes 0, 1 und 2

Liste bearbeiten

Eine Liste kann auf verschiedene Arten bearbeitet werden.

Elemente anhängen

Mit append() können Elemente zuhinterst angehängt werden:

farben = ["red", "green", "blue"]
farben.append("orange")
print(farben)
1
2
3

Elemente einfĂĽgen

Mit insert() können Elemente an einer beliebigen Stelle eingefügt werden:

farben = ["red", "green", "blue"]
farben.insert(1, "orange")
print(farben)
1
2
3

Elemente entfernen

Mit remove() können Elemente entfernt werden:

farben = ["red", "green", "blue"]
farben.remove("green")
print(farben)
1
2
3

Elemente sortieren

Mit sort() kann eine Liste sortiert werden:

farben = ["red", "green", "blue"]
farben.sort()
print(farben)
1
2
3

Listen durchgehen

Häufig möchte man mit den Elementen einer Liste etwas tun, meist mit jedem Element das selbe und das auch für eine unbekannte Länge der Liste. Dafür bietet Python die sogenannte for-in-Schleife (Wiederholung):

for-in

from turtle import *

farben = ["red", "green", "blue"]

for farbe in farben:
    fillcolor(farbe)
    begin_fill()
    circle(100)
    end_fill()
    left(360/len(farben))

fillcolor(farben[0])
begin_fill()
circle(100, 180)
end_fill()

hideturtle()
done()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Aufgabe

Nimm das vorhergehende Beispiel rĂĽber ins Thonny:

  1. starte das Programm und beobachte was es macht

    • welcher Teil der Zeichung stammt aus dem for-in?
    • was wird nur 1x gezeichnet (ausserhalb der Schleife)?
  2. fĂĽge eine vierte Farbe hinzu

    • funktioniert das Programm immer noch?
    • wieso? wieso nicht?
  3. fĂĽge eine fĂĽnfte Farbe hinzu

    • funktioniert das Programm immer noch?
    • wieso? wieso nicht?