Recherche de site Web

Comment utiliser les méthodes de liste en Python 3


Introduction

Python 3 a un certain nombre de structures de données intégrées, y compris des listes. Les structures de données nous offrent un moyen d'organiser et de stocker des données, et nous pouvons utiliser des méthodes intégrées pour récupérer ou manipuler ces données.

Pour tirer le meilleur parti de ce tutoriel, vous devez avoir une certaine familiarité avec le type de données liste, sa syntaxe et comment elle est indexée. Vous pouvez revoir les listes en lisant le tutoriel Comprendre les listes en Python 3.

Ici, nous allons passer en revue les méthodes intégrées que vous pouvez utiliser pour travailler avec des listes. Nous ajouterons des éléments aux listes et retirerons des éléments des listes, étendrons des listes, inverserons et trierons des listes, et plus encore.

Il est important de garder à l'esprit que les listes sont des types de données mutables — ou modifiables. Contrairement aux chaînes de caractères, qui sont immuables, chaque fois que vous utilisez une méthode sur une liste, vous affectez la liste elle-même et non une copie de la liste.

Pour ce tutoriel, nous allons travailler principalement avec une liste composée d'un inventaire de divers poissons que nous devons modifier à mesure que des poissons sont ajoutés ou retirés d'un aquarium municipal.

Conditions préalables

Vous devez avoir Python 3 installé et un environnement de programmation configuré sur votre ordinateur ou serveur. Si vous n'avez pas d'environnement de programmation configuré, vous pouvez consulter les guides d'installation et de configuration pour un environnement de programmation local ou pour un environnement de programmation sur votre serveur, approprié à votre système d'exploitation (Ubuntu, CentOS, Debian, etc.).

list.append()

La méthode list.append(x) ajoutera un élément (x) à la fin d'une liste. Nous commencerons avec une liste de nos poissons qui sont dispersés à travers l'aquarium. <$>[info] Info : Pour suivre l'exemple de code dans ce tutoriel, ouvrez un terminal Python interactif sur votre système local en exécutant la commande python3. Ensuite, vous pouvez copier, coller ou modifier les exemples en les ajoutant après le prompt >>>. <$>

fish = ['barracuda','cod','devil ray','eel']

Cette liste est composée de 4 éléments de chaîne, et leurs numéros d'index vont de 'barracuda' à 0 jusqu'à ''anguille' à l'index 3.

Nous venons d'ajouter un nouveau poisson dans l'aquarium aujourd'hui, et nous aimerions ajouter ce poisson à notre liste. Nous allons passer le type de notre nouveau poisson, 'flétan' à la méthode list.append(), puis imprimer notre liste modifiée pour confirmer que l'élément a été ajouté.

fish.append('flounder')
print(fish)
['barracuda', 'cod', 'devil ray', 'eel', 'flounder']

Maintenant, nous avons une liste de 5 éléments chaîne qui se termine par l'élément que nous avons passé à la fonction .append().

list.insérer()

La méthode list.insert(i,x) prend deux arguments, i étant la position d'index à laquelle vous souhaitez ajouter un élément, et x étant l'élément lui-même.

Notre aquarium a acquis un nouveau poisson, une anchois. Vous avez peut-être remarqué que jusqu'à présent, la liste fish est en ordre alphabétique. À cause de cela, nous ne voulons pas simplement ajouter la chaîne 'anchovy' à la fin de fish avec la fonction list.append(). Au lieu de cela, nous utiliserons list.insert() pour ajouter 'anchovy' au début de cette liste à la position d'index 0:

fish.insert(0,'anchovy')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder']

Dans ce cas, nous avons ajouté l'élément de chaîne au début de la liste. Chacun des éléments successifs sera maintenant à un nouveau numéro d'index car ils ont tous été déplacés vers le bas. Par conséquent, 'barracuda' sera à l'index 1, 'cod' sera à l'index 2, et 'flounder' — le dernier élément — sera à l'index 5.

Si, à ce stade, nous amenons un poisson demoiselle à l'aquarium et que nous voulons maintenir l'ordre alphabétique basé sur la liste ci-dessus, nous mettrions l'élément à l'indice 3 : fish.insert(3,'damselfish').

list.extend()

Si nous voulons combiner plus d'une liste, nous pouvons utiliser la méthode list.extend(L), qui prend une deuxième liste comme argument.

Notre aquarium accueille quatre nouveaux poissons d'un autre aquarium qui ferme. Nous avons ces poissons ensemble dans la liste more_fish:

more_fish = ['goby','herring','ide','kissing gourami']

Nous allons maintenant ajouter les éléments de la liste more_fish à la liste fish et imprimer la liste pour nous assurer que la seconde liste a été intégrée :

fish.extend(more_fish)
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide', 'kissing gourami']

À ce stade, la liste fish est composée de 10 éléments.

liste.enlever()

Lorsque nous devons retirer un élément d'une liste, nous utiliserons la méthode list.remove(x) qui supprime le premier élément d'une liste dont la valeur est équivalente à x.

Un groupe de chercheurs locaux est venu visiter l'aquarium. Ils effectuent des recherches sur l'espèce de poisson gourami embrasseur. Ils ont demandé à emprunter notre gourami embrasseur, nous aimerions donc retirer l'élément 'gourami embrasseur' de la liste pour refléter ce changement :

fish.remove('kissing gourami')
print(fish)
['anchovy', 'barracuda', 'cod', 'devil ray', 'eel', 'flounder', 'goby', 'herring', 'ide']

Suite à l'utilisation de la méthode list.remove(), notre liste n'a plus l'élément 'kissing gourami'.

Si vous passez un élément pour x dans list.remove() qui n'existe pas dans la liste, vous recevrez l'erreur suivante :

ValueError: list.remove(x): x not in list

Gardez à l'esprit que list.remove() ne supprimera que la première instance de l'élément que vous lui passez, donc si nous avions deux gouramis embrasseurs dans notre aquarium et que nous n'en prêtions qu'un aux scientifiques, nous pourrions utiliser la même construction de fish.remove('gourami embrasseur') et avoir toujours le deuxième gourami embrasseur sur notre liste.

liste.pop()

Nous pouvons utiliser la méthode list.pop([i]) pour renvoyer l'élément à la position d'index donnée dans la liste et ensuite retirer cet élément. Les crochets autour de i pour l'index nous indiquent que ce paramètre est optionnel, donc si nous ne spécifions pas d'index (comme dans fish.pop()), le dernier élément sera renvoyé et retiré.

Notre raie diable est devenue trop grande pour notre aquarium, et heureusement un aquarium dans une autre ville peut accueillir les besoins de la raie. Nous allons utiliser .pop() et spécifier le numéro d'index (3) de l'élément de chaîne 'raie diable' pour retirer l'élément de notre liste, et en le retournant nous allons confirmer que nous retirons le bon élément.

print(fish.pop(3))
print(fish)
devil ray
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

En utilisant la méthode .pop(), nous avons pu renvoyer et retirer 'devil ray' de la liste fish.

Si nous ne passions aucun paramètre à cette méthode et que nous effectutions fish.pop(), le dernier élément 'ide' serait renvoyé puis supprimé de la liste.

list.index()

Lorsque les listes commencent à devenir longues, il devient plus difficile pour nous de compter nos éléments afin de déterminer à quelle position d'index se trouve une certaine valeur. Nous pouvons utiliser list.index(x), où x est équivalent à une valeur d'élément, pour renvoyer l'index dans la liste où cet élément est situé. S'il y a plus d'un élément avec la valeur x, cette méthode renverra la première position d'index.

print(fish)
print(fish.index('herring'))
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']
6

Bien que la liste poissons ne soit pas très longue, nous sommes toujours capables de déterminer la position d'index de l'élément 'hareng' sans compter. L'index de chaque élément est très important à connaître afin que nous puissions manipuler les listes efficacement.

Nous recevrons une erreur si nous spécifions une valeur avec .index() et qu'aucune valeur de ce type n'existe dans la liste donnée : ValueError: 'x' n'est pas dans la liste.

liste.copier()

Lorsque nous travaillons avec une liste et que nous souhaitons peut-être la manipuler de plusieurs manières tout en ayant la liste originale disponible sans changement, nous pouvons utiliser list.copy() pour faire une copie de la liste.

Nous allons passer la valeur renvoyée par fish.copy() à la variable fish_2, puis nous afficherons la valeur de fish_2 pour nous assurer qu'il s'agit d'une liste avec les mêmes éléments que fish.

fish_2 = fish.copy()
print(fish_2)
['anchovy', 'barracuda', 'cod', 'eel', 'flounder', 'goby', 'herring', 'ide']

À ce stade, à la fois fish et fish_2 sont des listes équivalentes.

liste.reverse()

Nous pouvons inverser l'ordre des éléments dans une liste en utilisant la méthode list.reverse(). Il est peut-être plus pratique pour nous d'utiliser l'ordre alphabétique inversé plutôt que l'ordre alphabétique traditionnel. Dans ce cas, nous devons utiliser la méthode .reverse() avec la liste fish pour que la liste soit inversée en place.

fish.reverse()
print(fish)
['ide', 'herring', 'goby', 'flounder', 'eel', 'cod', 'barracuda', 'anchovy']

Après avoir utilisé la méthode .reverse(), notre liste commence avec l'élément 'ide', qui était à la fin de notre liste, et se termine par 'anchovy', qui était au début de la liste.

list.count()

La méthode list.count(x) renverra le nombre de fois que la valeur x apparaît dans une liste spécifiée. Nous pouvons vouloir utiliser cette méthode lorsque nous avons une longue liste avec de nombreuses valeurs correspondantes. Si nous avions un aquarium plus grand, par exemple, et que nous avions un élément pour chaque néon tétra que nous avons, nous pourrions utiliser .count() pour déterminer le nombre total de néons tetras que nous avons à tout moment.

Nous utiliserons notre liste actuelle pour compter le nombre de fois que l'élément 'goby' apparaît :

print(fish.count('goby'))
1

Parce que la chaîne 'goby' apparaît une seule fois, le nombre 1 est retourné lorsque nous utilisons la méthode .count().

Utilisons également cette méthode avec une liste d'entiers. Notre aquarium s'engage à fournir de grands soins à chaque poisson, c'est pourquoi nous suivons l'âge de chacun de nos poissons afin de nous assurer que leur régime alimentaire répond aux besoins des poissons en fonction de leur âge. Cette deuxième liste, fish_ages, correspond au type de poisson de notre autre liste, fish.

Parce que les poissons d'un an ont des besoins alimentaires particuliers, nous allons compter combien de poissons d'un an nous avons :

fish_ages = [1,2,4,3,2,1,1,2]
print(fish_ages.count(1))
3

L'entier 1 apparaît dans la liste fish_ages 3 fois, donc lorsqu'on utilise la méthode .count(), le nombre 3 est retourné.

liste.trier()

Nous pouvons utiliser la méthode list.sort() pour trier les éléments d'une liste.

Tout comme list.count(), list.sort() peut rendre plus apparent combien de valeurs entières spécifiques nous avons, et il peut également mettre une liste non triée de nombres en ordre numérique.

Utilisons la liste d'entiers, fish_ages, pour voir la méthode .sort() en action :

fish_ages.sort()
print(fish_ages)
[1, 1, 1, 2, 2, 2, 3, 4]

En utilisant .sort() avec fish_ages, les valeurs entières sont retournées dans l'ordre. En pratique, puisque ces âges correspondent à des poissons spécifiques, vous voudriez probablement faire une copie de la liste originale avant de la trier.

liste.vider()

Lorsque nous avons terminé avec une liste, nous pouvons supprimer toutes les valeurs qu'elle contient en utilisant la méthode list.clear().

Le gouvernement local a décidé de prendre en charge notre aquarium, en en faisant un espace public pour que les habitants de notre ville puissent en profiter. Comme nous ne travaillons plus sur l'aquarium nous-mêmes, nous n'avons plus besoin de tenir un inventaire des poissons, alors débarrassons-nous de la liste des poissons :

fish.clear()
print(fish)
[]

Nous recevons des crochets carrés comme sortie après avoir utilisé la fonction .clear() sur fish, ce qui nous indique que la liste est maintenant vide de tous les éléments.

Conclusion

En tant que séquence ordonnée d'éléments mutable, ou modifiable, les listes sont des structures de données très flexibles en Python. Les méthodes de liste nous permettent de travailler avec des listes de manière sophistiquée. Nous pouvons combiner des méthodes avec d'autres manières de modifier des listes afin d'avoir une gamme complète d'outils pour utiliser efficacement les listes dans nos programmes. À partir de là, vous pouvez lire sur les compréhensions de listes pour créer des listes basées sur des listes existantes.