Dans cette partie de cours, on va découvrir les listes en python ( Python : Les listes ).
Python : Les listes
Une liste stocke un ensemble d’éléments dans un ordre particulier (une séquence), elles permettent de stocker un grand nombre de données de différents types au même endroit.
La liste est le type de données le plus polyvalent disponible dans Python qui peut être écrit comme une liste de valeurs séparées par des virgules (éléments) entre crochets. Les éléments de la liste peuvent être modifiés.
Exemple :
- Création et initialisation d’une liste :
On peut créer une liste vide ou initialement remplie. Python reconnu les listes automatiquement.
Exemples :
- L1 = [] # liste vide
- L2 = [1, 2, 3] # liste d’entiers
- L3 = [1, “Hello”, 3.4] # liste contenant différentes types de données
Pour initialiser une liste, on peut ajouter les éléments au moment de la déclaration, ou l’initialiser via une boucle for .
Méthode 1 :
x=[1,’bien’,20.25,3,'zineb']
Méthode 2 :
L = []
for i in range(0,10):
L.append(i**2)
print(L)
Remarque : on peut initialiser une liste comme suit:
L = [x*3 for x in 'ABCD']
print(L)
# Prints [AAA, 'BBB', 'CCC', 'DDD']
Exemple :
L = [-12, -20, 10, 15, 42]
L1 = [x for x in L if x >= 0]
print(L1)
# Prints [10,15,42]
L = [-12, -20, 10, 15, 42]
L1 = []
for x in L:
if x >= 0:
L1.append(x)
print(L1)
# Prints [10,15,42]
Exercices :
Exercice 1 : programme en python qui permet de sauvegarder les noms de 10 stagiaires saisi par l’utilisateur.
Exercice 2 : Remplir une liste avec 10 entiers donnés par l’utilisateur .Puis, le programme trouve le plus grand et le plus petit de ces nombres.
Solution de l’exercice 2 :
l=[]
#Remplissage
for i in range(10): l.append(int(input("Donner un nombre:")))
#Recherche le pp et pg
#1- initialisation
min=l[0]
max=l[0]
#2 -recherche dans le reste
for elt in l:
if min>elt:
min=elt
if max<elt:
max=elt
#3 affichage
print("Le plus petit :",min)
print("Le plus grand:",max)
print(l)
Exercice 3 :
Proposer un programme qui demande un nombre entier x entre 1 et 10 jusqu’à ce que la réponse convienne. Puis, le programme remplit une liste L avec les multiplicateurs de x qui sont entre 0 et 100.On affiche alors la liste
Solution :
while True : x=int(input("Donner un entier entre 1 et 10:"))
if x>10 or x<=0:
print("Essayer une autre fois:")
else:
print("Bravo!!")
break
l=[]
for i in range(0,100,x):
l.append(i)
"""for i in range (0,100):
m=x*i
if m>=100:
break
l.append(m)
"""
print(l)
exercice 4 :
Programme qui permet de lire 10 note. Puis affiche les notes qui sont >moyenne
Solution :
l=[]
for i in range(10):
l.append(float(input("Donner une note:")))
somme=0
for note in l:
somme+=note
moyenne=somme/10
print(l)
print("La moyenne:", moyenne)
for note in l:
if note>moyenne:
print(note,end=" ")
Accès aux éléments d'une liste
On peut accéder à un élément via son indice (positif ou négatif).On peut aussi récupérer une plage d’éléments en utilisant l’opérateur ‘ :’ .
Exemples :
– print(x[0]) #le premier élément de la liste
– print(x[-1]) #le dernier élément de la liste
– x=[61,’142′,3,’k’,1,’f’]
print(x[0:3]) #les éléments entre l’index 0 et l’index 2
print(x[1:]) #les éléments après l’index 0
print(x[:2]) #les éléments avant l’index 2
Exercice :
Soit L une liste remplie par des données saisies au clavier. On veut créer deux listes L1 et L2 de la manière suivante :
– L1 est la copie de la première moitié de L
– L2 est la copie de la deuxième moitié de L
Parcourir une liste
# méthode 1 : x =element de la liste
for x in L:
print(x)
# méthode 2 : x=indice
for x in range(len(L)):
print(notes[x])
Traitements classiques sur les listes
On peut utiliser des méthodes prédéfinies pour faire des traitements classiques, ou implémenter l’algorithme de base sans utilisation des méthodes prédéfinies.
Exemple :
Moyennes = [10.5, 11.75 , 15.25, 12 , 9, 18.25 , 10.5, 5.5, 11.5, 14.05]
for x in range(len(Moyennes)):
print(Moyennes [x],end="-")
print(sum(Moyennes))
print(max(Moyennes))
print(min(Moyennes))
Ou // sans utilisation des fonctions prédéfinies :
somme = 0
for note in Moyennes:
somme += i
print(somme)
ou
somme = 0
for i in range(len(Moyennes)):
somme += notes[i]
print(somme)
On peut utiliser un ensemble de méthodes prédéfinies pour manipuler les listes : append(), insert(), extend(), pop(), remove(), split(), join().
Exemple :soit la liste : Villes=[‘safi’,’agadir’,’tanger’,’fes’,’casa’,’Rabat’ ]
- Remplacer le deuxième élement de la liste par ‘taza’
Villes[1] = ‘taza’
- Supprimer le troisième élément :
del Villes[2]
- Modification de plusieurs valeurs de liste
Que faire si vous souhaitez modifier plusieurs éléments contigus dans une liste à la fois?
Python permet cela avec une affectation de tranche, qui a la syntaxe suivante:
a[m:n] = <itérable>
Exemple :
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes) # ['safi', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
Villes[1:5]='casa'
print(Villes) # ['safi', 'c', 'a', 's', 'a', 'Rabat']
Vous pouvez insérer plusieurs éléments à la place d’un seul élément – utilisez simplement une tranche qui ne désigne qu’un seul élément :
Villes[1:2]='casa'
print(Villes) # [‘safi’, ‘c’, ‘a’, ‘s’, ‘a’, ‘tanger’, ‘fes’, ‘casa’, ‘Rabat’]
Notez que ce n’est pas la même chose que de remplacer l’élément unique par une liste :
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes) # [‘safi’, ‘agadir’, ‘tanger’, ‘fes’, ‘casa’, ‘Rabat’]
Villes[1]=’casa’
print(Villes)# [‘safi’, ‘casa’, ‘tanger’, ‘fes’, ‘casa’, ‘Rabat’]
Vous pouvez également insérer des éléments dans une liste sans rien supprimer. Spécifiez simplement une tranche de la forme [n: n] (une tranche de longueur nulle) à l’index souhaité
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes) # [‘safi’, ‘agadir’, ‘tanger’, ‘fes’, ‘casa’, ‘Rabat’]
Villes[1:1]=’casa’
print(Villes) # [‘safi’, ‘c’, ‘a’, ‘s’, ‘a’, ‘agadir’, ‘tanger’, ‘fes’, ‘casa’, ‘Rabat’]
list.extend() : Ajoute à la fin d’une liste, mais l’argument devrait être un itérable. Les éléments de sont ajoutés individuellement :
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes)
Villes.extend(['taza','nadour','ouajda'])
print(Villes)# ['safi', 'agadir', 'tanger', 'fes', 'casa', 'Rabat', 'taza', 'nadour', 'ouajda']
list.insert(, ) : Comme vous savez, pour ajouter un élément à la fin de la liste, on peut utiliser la méthode append. Si on veut insérer l’élement à une position spécifique, on doit utiliser la méthode insert. Cette méthode insère l’objet dans la liste a à spécifié.
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes)# ['safi', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
Villes.insert(1,'dakhla')
print(Villes)# ['safi', 'dakhla', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
list.remove() : Supprime l’objet de la liste a. Si n’est pas dans un, une exception est levée :
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes)# ['safi', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
Villes.remove('dakhla')
print(Villes)# ['safi', 'dakhla', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
a.pop(index=-1) : Cette méthode diffère de .remove () de deux manières:
1- Vous spécifiez l’index de l’élément à supprimer, plutôt que l’objet lui-même.
2- La méthode renvoie une valeur : l’élément qui a été supprimé.
Villes=['safi','agadir','tanger','fes','casa','Rabat' ]
print(Villes)# ['safi', 'agadir', 'tanger', 'fes', 'casa', 'Rabat']
v=Villes.pop(1)
print(v)#agadir
print(Villes)# ['safi', 'tanger', 'fes', 'casa', 'Rabat']
Les méthodes sur les listes
Le type liste dispose de méthodes supplémentaires. Voici toutes les méthodes des objets de type liste :
- list.append(x) : Ajoute un élément à la fin de la liste. Équivalent à a[len(a):] = [x].
- list.extend(iterable) : Étend la liste en y ajoutant tous les éléments de l’itérable. Équivalent à a[len(a):] = iterable.
- list.insert(i, x) : Insère un élément à la position indiquée. Le premier argument est la position de l’élément courant avant lequel l’insertion doit s’effectuer, donc a.insert(0, x) insère l’élément en tête de la liste et a.insert(len(a), x) est équivalent à a.append(x).
- list.remove(x) : Supprime de la liste le premier élément dont la valeur est égale à x. Une exception ValueError est levée s’il n’existe aucun élément avec cette valeur.
- list.pop([i]) : Enlève de la liste l’élément situé à la position indiquée et le renvoie en valeur de retour. Si aucune position n’est spécifiée, a.pop() enlève et renvoie le dernier élément de la liste (les crochets autour du i dans la signature de la méthode indiquent que ce paramètre est facultatif .
- list.clear() : Supprime tous les éléments de la liste. Équivalent à del a[:].
- list.index(x[, start[, end]]) : Renvoie la position du premier élément de la liste dont la valeur égale x. Une exception ValueError est levée si aucun élément n’est trouvé.
- list.count(x) : Renvoie le nombre d’éléments ayant la valeur x dans la liste.
- list.sort(key=None, reverse=False) : Ordonne les éléments dans la liste (les arguments peuvent personnaliser l’ordonnancement, voir sorted() pour leur explication).
- list.reverse() : Inverse l’ordre des éléments dans la liste.
- list.copy() : Renvoie une copie superficielle de la liste. Équivalent à a[:].
Exercice1 :
nous allons lire les notes de ahmad et khalid dans n matières (coefficient =1 pour chaque matière). on veut afficher les moyennes d’ahmad et khalid puis le nom de celui ayant
la meilleure moyenne
solution :
Entrées : notes ahmad , notes khalid, nombre des matières
Traitements : calcul moyennes (ahmad et khalid) , trouver le premier
Sortie : afficher moyennes et le nom du premier
'''
n=int(input("Donner le nombre des matières:"))
Notes_Ahmad=[]
Notes_Khalid=[]
print("Donner les notes de khalid:")
for i in range(n):
Notes_Khalid.append(float(input("donner la note:")))
print("Donner les notes de Ahmad:")
for i in range(n):
Notes_Ahmad.append(float(input("donner la note:")))
print("Notes de halid ",Notes_Khalid)
print("Notes de Ahmad :",Notes_Ahmad)
moyenne_K=0
for note in Notes_Khalid:
moyenne_K+=note
moyenne_K/=n
moyenne_H=0
for note in Notes_Ahmad:
moyenne_H+=note
moyenne_H/=n
print("Moyenne de Khalid:",moyenne_K)
print("Moyenne de Ahmad:",moyenne_H)
if moyenne_K<moyenne_H:
print("Le premier:Ahmad")
elif moyenne_K>moyenne_H:
print("Le premier:Khalid")
else:
print("Les deux ont la meme moyenne")
Exercice 2 :
Refaire l’exercice 1 avec l’utilisation de la fonction sum
n=int(input("Donner le nombre des matières:"))
Notes_Ahmad=[]
Notes_Khalid=[]
print("Donner les notes de khalid:")
for i in range(n):
Notes_Khalid.append(float(input("donner la note:")))
print("Donner les notes de Ahmad:")
for i in range(n):
Notes_Ahmad.append(float(input("donner la note:")))
print("Notes de khalid :",Notes_Khalid)
print("Notes de Ahmad :",Notes_Ahmad)
moyenne_K=sum(Notes_Khalid)/n
moyenne_H=sum(Notes_Ahmad)/n
print("Moyenne de Khalid:",moyenne_K,"La meilleure note:",max(Notes_Khalid))
print("Moyenne de Ahmad:",moyenne_H,"La meilleure note :",max(Notes_Ahmad)
if moyenne_K<moyenne_H:
print("Le premier:Ahmad")
elif moyenne_K>moyenne_H:
print("Le premier:Khalid")
else:
print("Les deux ont la meme moyenne")
Vous pouvez suivre la liste des vidéos du cours Python (Programmation ) sur notre chaine youtube : Vidéos Python (cours) , Vidéos Python (exercices).
Aussi, notre cours bien structuré est sur le site : cours python
Découvrir plus de cours
Algorithmes, base de données, merise, SQL
Python : Les tableaux
Dans cette partie de cours, on va découvrir les l’utilisation des tableaux en python (...
L’encapsulation en Python
Bienvenue dans notre cours ‘Programmation orientée objet en Python’. Ce cours traite les concepts fondamentaux...
Le MCD (Modèle Conceptuel de Données)
Le Modèle Conceptuel de Données ou MCD est le plus connu et le plus utilisé...