Les listes et tuples en Python
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Construction d'une liste par compréhension
On peut construire une liste de trois manière différentes:
- en énumérant chaque élément,
- de manière itérative,
- par comprehension.
1
2
3
4
5
6
7
8
9
10
11
12
# Enumération
l = [0, 1, 4, 9, 16]
print(l)
# Construction itérative
l = []
for i in range(5):
l.append(i*i)
print(l)
# Par compréhension
l = [ i*i for i in range(5) ]
print(l)
Enter to Rename, Shift+Enter to Preview
On peut lire cette dernière instruction de la manière suivante: l
est la liste des valeurs i*i
pour i
allant de 0 à 5.
QCM
l1 = [ i for i in range(5)]
l2 = [ i+2 for i in range(5)]
l3 = [ c for c in "Hello"]
l4 = [ c.upper() for c in "Hello"]
Que vaut l1 ?
Que vaut l2 ?
Que vaut l3 ?
Que vaut l4 ?
On peut utiliser plusieurs variables dans la construction par compréhension:
1
2
3
4
5
6
7
8
9
l = [ i+j for i in range(5) for j in range(3) ]
print(l)
# Est équivalent à la construction itérative:
l = []
for i in range(5):
for j in range(3):
l.append(i+j)
print(l)
Enter to Rename, Shift+Enter to Preview
QCM
l5 = [ i for j in range(2) for i in range(3, 5)]
l6 = [ i for i in range(3, 5) for j in range(2)]
l7 = [ (i, j) for i in range(2) for j in range(2)]
Que vaut l5 ?
Que vaut l6 ?
Que vaut l7 ?
On peut utiliser le mot-clé if
pour filtrer des éléments de la liste:
1
2
3
4
5
6
7
8
9
10
# On construit la liste de 0 à 20 en enlevant chaque multiple de 3:
l = [ i for i in range(21) if i % 3 != 0 ]
print(l)
# Est équivalent à la construction itérative:
l = []
for i in range(21):
if i % 3 != 0:
l.append(i)
print(l)
Enter to Rename, Shift+Enter to Preview
QCM
liste = [ -5, 2, 3, -7, -2, 4, 2, 0, 16]
l8 = [ i for i in liste if i > 0]
l9 = [ i for i in liste if i*i in liste]
Que vaut l8 ?
Que vaut l9 ?
Exercice
Yoda dispose de la liste des couples maître/padawan du temple (une liste de tuples de taille 2). Il souhaite que vous complétiez la fonction inverse_couple
renvoyant une nouvelle liste contenant les couples padawan/maître du temple.
Much to learn, you still have
1
2
3
4
def inverse_couples(couples):
# A compléter
pass
Enter to Rename, Shift+Enter to Preview
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content