Manipulation de listes avec Python
Sommaire
- 1- Objectifs
- 2- Opération sur les listes
- 2.1- Concaténation:
- 2.2- Duplication:
- 3- Opération
- 3.1- Parcourir une liste à l'aide de for, range() et len()
- 3.2- Trier une liste
- 3.3- Ajout à la fin d'une liste
- 3.4- Ajouter un élément
list.append
- 3.5- Ajouter une liste
list.extend
- 3.6- Utilisation de la méthode insert()
- 3.7- Sans méthode
- 3.8- Inverser l'ordre des éléments d'une liste
- 3.9- enlever (effacer) un élément d'une liste
- 3.10-
list.remove()
- 3.11-
list.del()
- 3.12- Différences
- 3.13- Compter le nombre d’éléments d'une liste
- 4- Application
- 4.1- Énoncé
- 4.2- Solution proposée
- 4.2.1- Sommaire du cours Python
Manipulation de listes avec Python
-
Objectifs
- Etre capable de manipuler simplement les listes en python.
-
Opération sur les listes
- Les listes supportent l’opérateur
+
de concaténation, ainsi que l’opérateur*
pour la duplication : -
Concaténation:
- site + objectif=
-
Duplication:
- site * 2=
-
Opération
-
Parcourir une liste à l’aide de for, range() et len()
- For
- L’instruction
for
est l’instruction idéale pour parcourir une liste : - len()
- L’instruction
len()
vous permet de connaître la longueur d’une liste, c’est-à-dire le nombre d’éléments que contient la liste. - La fonction
len()
retourne le nombre d’éléments d’une liste. - range()
- La fonction
range()
permet de créer une liste. Elle permet d’utiliser 3 paramètres. Le premier contient le numéro de départ de la liste, le second le dernier nombre de la liste et finalement l’incrément entre chaque nombre généré. - Conjointement range() et len()
- Conjointement utilisé avec la fonction
len()
, elle permet de créer une boucle qui parcours tous les éléments d’une liste. - On peut combiner les fonctions
range()
etlen()
pour obtenir automatiquement tous les indices d’une liste. -
Trier une liste
- Dans l’ordre croissant
- Les fonctions
sorted()
etsort()
permettent de trier une liste. - La fonction
sorted()
retourne une nouvelle liste triée - Si vous n’avez pas besoin de la liste originale,l’utilisation de la fonction
sort()
est souhaitable. - Dans l’ordre décroissant
- Par défaut,
sort()
ne nécessite aucun paramètre supplémentaire. Cependant, il a deux paramètres facultatifs: - L’un de ces paramètres est
reverse
– Si True, la liste triée est inversée (ou triée par ordre décroissant) - Alternativement pour
sorted()
, vous pouvez utiliser le code suivant.sorted(list, reverse=True)
- Différence entre
sort ()
etsorted ()
- La différence la plus simple entre
sort ()
etsorted ()
est:sort ()
change la liste directement et ne renvoie aucune valeur, tandis quesorted ()
ne change pas la liste et retourne la liste triée. -
Ajout à la fin d’une liste
-
Ajouter un élément
list.append
- Cette fonction sert à ajouter un élément à la fin d’une liste.
- Ajoute son argument en tant qu’élément unique à la fin d’une liste. La longueur de la liste augmente de un.
- syntaxe:
# Ajoute un objet (un nombre, une chaîne ou un
# une autre liste) à la fin de ma_liste
ma_liste.append (objet)- Exemple:
-
Ajouter une liste
list.extend
- La méthode
extend()
ajoute les éléments de liste spécifiés (ou tout élément itérable) à la fin de la liste actuelle. extend ()
:itère sur son argument et ajoute chaque élément à la liste et étend la liste. La longueur de la liste augmente du nombre d’éléments dans son argument.- syntaxe:
# Chaque élément d'un itérable est ajouté
# à ma_liste
ma_liste.extend (itérable)- Exemple:
-
Utilisation de la méthode insert()
- La méthode
append()
ne fonctionne que pour l’ajout d’éléments à la fin de la liste, pour l’ajout d’un élément à la position souhaitée, la méthode insert() est utilisée. - Contrairement à
append()
qui ne prend qu’un seul argument, la méthodeinsert()
nécessite deux arguments (position, valeur). -
Sans méthode
- Exemples:
- Le résultat sera:
a=['a', 'b', 'c', 'd', 'e']
- N’oubliez pas que lorsque Python itère sur une chaîne, le résultat est une liste des caractères du composant. Ainsi, cette déclaration ajoute également la liste [‘d’, ‘e’].
- Le résultat sera:
a=['a', 'b', 'c', 'd', 'e']
-
Inverser l’ordre des éléments d’une liste
- Cette fonction permet de renverser l’ordre des éléments d’une liste, mais sans renvoyer de valeur : en effet, le renversement se fait directement dans la liste sur laquelle on a utilisé la méthode.
- Si on veut récupérer la valeur, on peut utiliser la fonction
reversed(liste)
(qui n’est pas une méthode de la classe list). - syntaxe:
list.reverse()
- Exemple:
-
enlever (effacer) un élément d’une liste
-
list.remove()
- La méthode
remove()
permet de supprimer une valeur dont on ne veut pas dans la liste. - syntaxe:
list.remove(valeur)
- Exemple:
-
list.del()
- L’instruction
del
supprime un élément d’une liste à un indice déterminé : - L’instruction
del
, permet d’effacer un ou plusieurs éléments à partir de leur(s) index : -
Différences
-
Compter le nombre d’éléments d’une liste
- La méthode .count() compte le nombre d’éléments (passés en argument) dans une liste :
-
Application
-
Énoncé
- Ecrire un script python qui permet de supprimer l’élément numéro i d’une liste puis insérer cet élément aux positions p1 et p2 saisies par l’utilisateur.
-
Solution proposée
site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
objectif = ['son','objectif','est', 'de', 'donner', 'à tout',
'personnes,', 'un', 'ensemble', 'de', 'contenus',
'simples', 'et', 'compréhensible.']
['Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation",'sont','objectif', 'est', 'de', 'donner', 'à tout', 'personnes,', 'un', 'ensemble', 'de', 'contenus', 'simples', 'et', 'compréhensible.']
['Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation", 'Le', 'site', 'apcpedagogie.com', 'est', 'un', 'site', "d'autoformation"]
>>> site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
>>> for mot in site:
print (mot)
#Sortie:
Le
site
apcpedagogie.com
est
site
d'autoformation
>>>maListe=[]
>>>print len(maListe)
0
>>>maListe=[1, 2, 3, 4]
>>>print len(maListe)
4
site = ['Le', 'site', 'apcpedagogie.com', 'est','un', 'site', "d'autoformation"]
for index in range(len(site)):
print (index, site[index])
Résultat d’exécution:
0 Le
1 site
2 apcpedagogie.com
3 est
4 site
5 d'autoformation
#utiliser sorted sans le nom de la liste
print(sorted([1, 4, 3, 2]))
#utiliser sorted avec le nom de la liste
maListe=[1, 4, 3, 2]
print(sorted(maListe))
#utiliser le nom de la liste puis sort()
maListe.sort()
print(maListe)
maListe=[1, 4, 3, 2]
maListe.sort(reverse=True)
print(maListe)
"""
Production:
[4, 3, 2, 1]
"""
print(sorted(maListe,reverse=True))
"""
Production:
[4, 3, 2, 1]
"""
liste = [1, 2, 3, 4, 5]
liste.append(6)
print liste # [1, 2, 3, 4, 5, 6]
fruits = ['orange', 'banane', 'poire']
points = (1, 4, 5, 9)
fruits.extend(points)
a = ['a', 'b', 'c']
a += ['d', 'e']
ou a += 'de'
a = ['a', 'b', 'c']
a[len(a):] = ['d', 'e']
liste = [1, 2, 3, 4, 5]
liste.reverse()
print (liste)
#Sortie: [5, 4, 3, 2, 1]
#Impression
for o in reversed(liste):
print(o)
# Sortie: 5, 4, 3, 2, 1 <-- pas modifié
liste = [1, 2, 3, 4, 5]
liste.remove(1)
print liste # [2, 3, 4, 5]
>>> del nombres[2]
>>> nombres
[12, 72, 17, 10]
>>> del nombres[1:3]
>>> nombres
[12, 10]
Notez bien la différence entre la méthode
remove()
et l’instructiondel
:del
travaille avec un index ou une tranche d’index, tandis queremove()
recherche une valeur (si plusieurs éléments de la liste possèdent la
même valeur, seul le premier est effacé).
>>> a=[1 , 2, 4, 3, 1, 1]
>>> a. count (1)
3
>>> a. count (4)
1
>>> a. count (23)
0
liste = [1, 2, 3, 4, 5, 6, 7, 8]
print("Liste initiale : "+str(liste))
#L’instruction del supprime un élément d’une liste à un indice déterminé
#Récupérer l'élément à supprimer
element=liste[2]
print("Elément à supprimer est : "+str(element))
del liste[2]
print("Liste après supression "+str(liste))
#Demander à l'utilisateur de saisir la première position
position1=int(input("Saisir la position 1 de l'élément à insérer"))
if (position1<=len(liste)):
print("La position 1 saisie est :"+ str(position1))
# Ajout d'un élément à position spécifique (en utilisant la méthode d'insertion)
liste.insert(position1, element)
print("Nouvelle liste après insertion dans la postion : ",str(position1)+"\n",str(liste))
position2=int(input("Saisir la position 2 de l'élément à insérer"))
if (position2<=len(liste)):
print("La position 2 saisie est :"+ str(position2))
# Ajout d'un élément à position spécifique (en utilisant la méthode d'insertion)
liste.insert(position2, element)
print("Nouvelle liste après insertion dans la postion : ",str(position1)+"\n",str(liste))