Numéroter et apparier deux listes
Deux listes côte à côte : les noms lida puis guest, les boissons water puis tea. zip donne le premier de chaque liste ensemble, puis le second, et s'arrête quand la plus courte finit. enumerate pose un numéro à côté de chaque nom. Sans autre départ, ce numéro vaut 0. for parcourait une seule suite déjà prête. break et continue ne numérotent pas et n'apparient pas. Ici la boucle n'est pas coupée.
names contient deux chaînes. enumerate(names) donne, à chaque tour, un numéro et le nom. Le premier numéro est 0, parce qu'aucun autre départ n'a été donné. print écrit les deux sur une seule ligne.
names = ["lida", "guest"]
for number, name in enumerate(names):
print(number, name)
Vous voyez 0 lida, puis 1 guest. Le 0 et le 1 ne sont pas gardés dans names. names reste deux chaînes. Le numéro ne vit que ce tour.
Commencer le compte à 1
Passez 1 comme second argument. enumerate(names, 1) écrit 1 lida, puis 2 guest. L'ordre des noms ne bouge pas. Seul le compte change. Omettez le second argument et vous repartez de 0.
zip prend deux listes et un élément de chacune, dans le même ordre. Le premier nom est lida, la première boisson est water. Le tour suivant est guest avec tea. Il n'y a pas de numéro, sauf si vous appelez aussi enumerate. Ce programme ne l'appelle pas.
names = ["lida", "guest"]
drinks = ["water", "tea"]
for name, drink in zip(names, drinks):
print(name, drink)
Vous voyez lida water, puis guest tea. L'appariement suit l'ordre de la liste, pas le sens du nom. Échangez les boissons, les paires suivent.
La liste la plus courte termine la boucle
Mettez seulement water dans drinks. zip part du début des deux listes, donc le premier tour est lida avec water. Il n'y a pas de seconde boisson. zip n'en invente pas et ne lève pas d'erreur. guest n'est jamais visité, et la boucle se termine.
names = ["lida", "guest"]
drinks = ["water"]
for name, drink in zip(names, drinks):
print(name, drink)
La seule ligne est lida water. guest est encore dans names. Aucune boisson n'était à côté, donc cette boucle n'a pas atteint ce nom.
Quatre appels, et ce que chacun écrit. Les deux lignes enumerate ne diffèrent que par le départ. Les deux lignes zip ne diffèrent que par la longueur de drinks.
📊 Ce que chaque appel écrit
| Appel | Ce que vous voyez |
|---|---|
| enumerate(names) | 0 avec lida, puis 1 avec guest |
| enumerate(names, 1) | 1 avec lida, puis 2 avec guest |
| zip, drinks vaut water puis tea | lida avec water, puis guest avec tea |
| zip, drinks ne tient que water | lida avec water, puis la boucle finit |
La page suivante parle d'une fonction : un travail qui a un nom, et que vous pouvez appeler ensuite. Elle ne numérote pas une liste et n'apparie pas deux listes.
Calculez avant d'exécuter
- names vaut lida, puis guest. Quelles lignes écrit enumerate(names) ?
- Vous passez le départ 1. Quelle est la première ligne ?
- drinks vaut water, puis tea. Qu'écrit zip en second ?
- drinks ne contient que water. guest est-il écrit ? Le programme s'arrête-t-il sur une erreur ?
Là où les paires se trompent
- Attendre un départ à 1 alors qu'aucun départ n'a été passé
- Croire que le numéro est recopié dans la liste
- Apparier lida avec tea parce que tea semble mieux aller
- Attendre guest alors que drinks n'a qu'un élément
- Prendre l'arrêt anticipé pour un plantage
enumerate parcourt une liste et ajoute un numéro. Sans départ, le numéro est 0 puis 1 : 0 avec lida, puis 1 avec guest. Passez 1, et les mêmes noms sortent comme 1 et 2.
zip parcourt deux listes du même pas. À longueurs égales, lida va avec water, puis guest avec tea. Si drinks ne tient que water, lida water est écrit et la boucle finit. guest reste dans names, non visité.
La page suivante donne un nom à un travail, pour que vous puissiez l'appeler.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut