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
['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:
Résultat d’exécution:
0 Le
1 site
2 apcpedagogie.com
3 est
4 site
5 d'autoformation
a = ['a', 'b', 'c']
a += ['d', 'e']
ou a += 'de'
a = ['a', 'b', 'c']
a[len(a):] = ['d', 'e']
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é).