Cours Les Listes en Python
Télécharger PDFLes Listes en Python
1- Définition d'une liste
Une liste est une collection ordonnée et modifiable d’éléments éventuellement hétérogènes.
nombres = [5, 38, 10, 25]
mots = ["jambon", "fromage", "confiture", "chocolat"]
stuff = [5000, "Brigitte", 3.1416, ["Albert", "René", 1947]]
Dans le dernier exemple ci-dessus, nous avons rassemblé un entier, une chaîne, un réel et même une liste, pour vous rappeler que l'on peut combiner dans une liste des données de n'importe quel type, y compris des listes.
2- Accès aux éléments d’une liste
Pour accéder aux éléments d'une liste, on utilise les mêmes méthodes (index, découpage en tranches) que pour accéder aux caractères d'une chaîne :
print(nombres[2])
print(nombres[1:3])
print(nombres[2:3])
print(nombres[2:])
print(nombres[:2])
print(nombres[-1])
print(nombres[-2])
3- Les listes sont modifiables
Les listes sont des séquences modifiables. Cela nous permettra de construire plus tard des listes de grande taille, morceau par morceau, d'une manière dynamique (c'est-à-dire à l'aide d'un algorithme quelconque). Exemples :
nombres[0] = 17
stuff[3][1] = "Isabelle"
4- Les listes sont des objets
Sous Python, les listes sont des objets pour lesquels on peut appliquer un certain nombre de méthodes (fonctions) particulièrement efficaces. En voici quelques-unes :
nombres = [17, 38, 10, 25, 72]
nombres.sort()
nombres.append(12)
nombres.reverse()
nombres.index(17)
nombres.remove(38)
del nombres[2]
del nombres[1:3]
5- Techniques de slicing avancé pour modifier une liste
5- a- Insertion d'un ou plusieurs éléments n'importe où dans une liste
mots = ['jambon', 'fromage', 'confiture', 'chocolat']
mots[2:2] =["miel"]
mots[5:5] =['saucisson', 'ketchup']
5- b- Suppression/remplacement d'éléments
mots[2:5] = []
mots[1:3] = ['salade']
mots[1:] = ['mayonnaise', 'poulet', 'tomate']
6- Création d'une liste de nombres à l'aide de la fonction range()
L=list(range(10))
list(range(5,13))
list(range(3,16,3))
list(range(10, -10, -3))
7- Parcours d'une liste à l'aide de for, range() et len()
prov = ['La','raison','du','plus','fort','est','toujours','la','meilleure']
for mot in prov:
print(mot, end =' ')
for n in range(10, 18, 3):
print(n, n**2, n**3)
fable = ['Maître','Corbeau','sur','un','arbre','perché']
for index in range(len(fable)):
print(index, fable[index])
L1=list(range(10))
S=[i**2 for i in range(4)]
L2=[x for x in L1 if i%3==0]
Q=[i**2 for i in range(10) if i%3==0]
8- Opérations sur les listes
fruits = ['orange','citron']
legumes = ['poireau','oignon','tomate']
fruits + legumes
fruits * 3
T = [0]*7
9- Copie d'une liste
fable = ['Je','plie','mais','ne','romps','point']
phrase = fable
fable[4] ='casse'
Exercices
Série 1
Exercice 1
Soit la liste suivante : [19, 6, 15, 6, 33, 9]
- Ajoutez en fin de liste l'élément 17 et affichez la liste ;
- Ajoutez en début de liste l'élément 24 et affichez la liste ;
- Triez, affichez la liste ;
- Renversez et affichez la liste ;
- Supprimez le dernier élément de la liste. Affichez l'élément et la liste ;
- Supprimez le premier élément de la liste. Affichez l'élément et la liste ;
- Ajoutez à la fin de la liste la sous liste [27, 23, 4, 8] ;
- Affichez la sous liste à partir du troisième élément ;
- Affichez la sous liste composée du 2ième au 5ième élément ;
- Affichez la liste composée des 2 derniers éléments en utilisant l'indexage négatif ;
- Affichez à l'aide de la boucle for la somme du contenu de la liste.
Exercice 2
Écrivez une fonction qui retourne la liste des carrés et des cubes des nombres de 20 à 40.
Exercice 3
Écrivez une fonction qui retourne la liste des sinus des angles de 0° à 90°, par pas de 5°. Attention : la fonction sin() du module math considère que les angles sont fournis en radians (360° = 2 π radians).
Exercice 4
Écrivez une fonction qui affiche à l'écran les 15 premiers termes des tables de multiplication par 2, 3, 5, 7, 11, 13, 17, 19 (ces nombres seront placés au départ dans une liste) sous la forme d'une table similaire à la suivante :
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75
etc.
Exercice 5
Vous disposez d'une liste de nombres entiers quelconques, certains d'entre eux étant présents en plusieurs exemplaires. Écrivez une fonction qui recopie cette liste dans une autre, en omettant les doublons. La liste finale devra être triée.
Exercice 6
Écrivez une fonction permettant de trier une liste. Cette fonction ne pourra pas utiliser la méthode intégrée sort() de Python : vous devez donc définir vous-même l'algorithme de tri.
Exercice 7
Soient les listes suivantes :
t1 = [31,28,31,30,31,30,31,31,30,31,30,31]
t2 = [' Janvier ' , ' Février ' , ' Mars ' , ' Avril ' , ' Mai ' , ' Juin ' ,' Juillet ' , ' Août ' , ' Septembre ' , ' Octobre ' , ' Novembre ' , ' Décembre ' ]
Écrivez un petit programme qui insère dans la seconde liste tous les éléments de la première, de telle sorte que chaque nom de mois soit suivi du nombre de jours correspondant : ['Janvier',31,'Février',28,'Mars',31, etc.].
FAQ
1. Comment accéder aux éléments d'une liste en Python ?
Pour accéder aux éléments d'une liste, on utilise les mêmes méthodes (index, découpage en tranches) que pour accéder aux caractères d'une chaîne.
2. Comment trier une liste en Python ?
Pour trier une liste, vous pouvez utiliser la méthode sort() ou la fonction sorted().
3. Comment parcourir une liste en Python ?
L'instruction for est l'instruction idéale pour parcourir une liste.