Chargement...

Construire une liste en une ligne

Les nombres sont déjà écrits : 2, puis 5, puis 1. Une ligne en construit une liste neuve. doubled = [n * 2 for n in prices] passe sur chaque nombre, le double et garde 4, puis 10, puis 2. prices n'est pas réécrit. n est seulement le nom du nombre sur lequel la ligne se trouve : d'abord 2, puis 5, puis 1.

4, puis 10, et prices a encore trois nombres

python
prices = [2, 5, 1]
doubled = [n * 2 for n in prices]

print(doubled[0])
print(doubled[1])
print(len(prices))

À l'écran : 4, puis 10, puis 3. 4 est le premier nombre neuf, 2 doublé. 10 est le suivant, 5 doublé. Le 3 est le nombre de valeurs que prices a encore. Le dernier nombre neuf est 2, à partir de 1 doublé, et ce programme ne l'écrit pas.

prices[0] est encore 2. Doubler a écrit une liste neuve. Il n'a pas remplacé l'ancienne. Quand la ligne est finie, vous lisez doubled. n ne servait que pendant que la ligne passait sur les nombres.

Un test peut laisser un nombre dehors. Ce programme recommence, donc doubled n'est pas ici. small = [n for n in prices if n < 5] garde un nombre seulement s'il est plus petit que 5. 2 entre. 5 n'entre pas. 1 entre. La liste neuve est 2, puis 1. prices a encore trois nombres.

le premier nombre gardé, puis combien sont restés

python
prices = [2, 5, 1]
small = [n for n in prices if n < 5]

print(small[0])
print(len(small))

À l'écran : 2, puis 2. Le premier 2 est small[0], le nombre 2 qui est resté. Le second 2 est combien de nombres sont restés. 5 n'est pas dans small. small[1] serait 1, et ce programme ne l'écrit pas.

📊 Doubler, garder, ou s'arrêter

Ligne Ce que vous obtenez
[n * 2 for n in prices] une liste neuve 4, 10, 2, et prices reste
[n for n in prices if n < 5] une liste neuve 2, puis 1, et 5 reste dehors
prices[0] encore 2
n * 2 for n in prices le programme s'arrête, parce que les crochets manquent

Les crochets font partie de la ligne. Sans eux, le programme s'arrête. Le nom devant et le nom après for doivent être le même nom. [n * 2 for price in prices] s'arrête aussi, parce que n ne reçoit jamais un nombre. price serait le nom qui avance, et la partie doublée ne s'en sert pas.

La page suivante parle du nom d'un arrêt, quand le programme rencontre un problème. Cette page construit seulement une liste en une ligne.

Ce que montrent les deux listes

  1. Qu'écrit le premier programme ?
  2. Après ce programme, que vaut prices[0] ?
  3. Qu'écrit le second programme ?
  4. Que se passe-t-il si vous écrivez la ligne du double sans les crochets ?

Une liste neuve, et l'ancienne reste

Le premier écran est 4, puis 10, puis 3. prices[0] est encore 2. Le second est 2, puis 2 : le premier nombre gardé, puis combien sont restés. 5 est resté dehors. Sans les crochets, le programme s'arrête. Le nom que vous doublez et le nom après for sont le même. La page suivante parle du nom d'un arrêt.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
4
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 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