Index mitgeben und zwei Listen paaren
Die Zahl von enumerate steckt nicht in der Liste. Sie gilt nur für diesen Durchgang, und ohne zweiten Wert beginnt sie bei 0. zip geht zwei Listen im gleichen Schritt und hört auf, wenn die kürzere zu Ende ist. for hat weder mitgezählt noch zwei Listen zusammen geführt. break und continue schneiden eine Schleife. Hier wird nichts abgeschnitten.
names enthält lida, dann guest. enumerate(names) gibt je Durchgang eine Zahl und den Namen. Die erste Zahl ist 0, weil kein anderer Start gesagt wurde. print schreibt beide in eine Zeile.
names = ["lida", "guest"]
for number, name in enumerate(names):
print(number, name)
Du siehst 0 lida, dann 1 guest. Die 0 und die 1 liegen nicht in names. names bleibt zwei Zeichenketten.
Bei 1 anfangen
Gib 1 als zweites Argument. enumerate(names, 1) schreibt 1 lida, dann 2 guest. Die Namen bleiben in ihrer Ordnung. Nur der Zähler rückt. Lässt du das zweite Argument weg, bist du wieder bei 0.
zip nimmt zwei Listen und je einen Eintrag, in derselben Reihenfolge. Der erste Name ist lida, das erste Getränk water. Danach guest mit tea. Eine Zahl gibt es hier nicht, solange du enumerate nicht zusätzlich rufst. Dieses Programm ruft es nicht.
names = ["lida", "guest"]
drinks = ["water", "tea"]
for name, drink in zip(names, drinks):
print(name, drink)
Du siehst lida water, dann guest tea. Die Paarung folgt der Listenordnung, nicht der Bedeutung des Namens. Tausch die Getränke, und die Paare tauschen mit.
Die kürzere Liste beendet die Schleife
Leg in drinks nur water. zip beginnt vorn in beiden Listen, also ist der erste Durchgang lida mit water. Ein zweites Getränk gibt es nicht. zip erfindet keines und meldet keinen Fehler. guest wird nicht besucht, und die Schleife endet.
names = ["lida", "guest"]
drinks = ["water"]
for name, drink in zip(names, drinks):
print(name, drink)
Die einzige Zeile ist lida water. guest steht noch in names. Daneben war kein Getränk, also kam diese Schleife nicht bei dem Namen an.
Vier Aufrufe, und was jeder schreibt. Die beiden enumerate-Zeilen unterscheiden sich nur im Start. Die beiden zip-Zeilen nur in der Länge von drinks.
📊 Was jeder Aufruf schreibt
| Aufruf | Was du siehst |
|---|---|
| enumerate(names) | 0 mit lida, dann 1 mit guest |
| enumerate(names, 1) | 1 mit lida, dann 2 mit guest |
| zip, drinks ist water dann tea | lida mit water, dann guest mit tea |
| zip, drinks hält nur water | lida mit water, dann endet die Schleife |
Die nächste Seite handelt von einer Funktion: ein Stück Arbeit mit Namen, das du später aufrufen kannst. Sie zählt keine Liste durch und paart keine zwei Listen.
Erst durchrechnen
- names ist lida, dann guest. Welche Zeilen schreibt enumerate(names)?
- Du gibst den Start 1. Was ist die erste Zeile?
- drinks ist water, dann tea. Was schreibt zip als Zweites?
- drinks enthält nur water. Erscheint guest? Stoppt das Programm mit einem Fehler?
Wo die Paare kippen
- Bei 1 anfangen wollen, obwohl kein Start übergeben wurde
- Glauben, die Zahl werde in die Liste zurückgeschrieben
- lida mit tea paaren, weil tea passender wirkt
- guest erwarten, wenn drinks nur einen Eintrag hat
- Das frühe Ende für einen Absturz halten
enumerate geht eine Liste ab und legt eine Zahl dazu. Ohne Start ist das 0, dann 1: 0 mit lida, dann 1 mit guest. Übergibst du 1, kommen dieselben Namen als 1 und 2.
zip geht zwei Listen im Gleichschritt. Gleiche Längen geben lida mit water, dann guest mit tea. Hält drinks nur water, wird lida water geschrieben und die Schleife endet. guest bleibt in names, unbesucht.
Die nächste Seite gibt einem Stück Arbeit einen Namen, den du aufrufen kannst.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt