Comment utiliser les méthodes de liste dans Python 3

introduction

Python 3 possède un certain nombre de structures de données intégrées, y compris des listes. Les structures de données nous fournissent 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 didacticiel, familiarisez-vous avec le type de données de la liste, sa syntaxe et son indexation. Vous pouvez consulter les listes en lisant le tutorielUnderstanding Lists in 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 et supprimerons des éléments de listes, des listes étendues, des listes inversées et de tri, etc.

Il est important de garder à l'esprit que les listes sont des types de données modifiables ou modifiables. Contrairement àstrings, qui sont immuables, chaque fois que vous utilisez une méthode sur une liste, vous affecterez la liste elle-même et non une copie de la liste.

Pour ce tutoriel, nous travaillerons principalement avec une liste comprenant un inventaire de divers poissons que nous devons modifier au fur et à mesure que des poissons sont ajoutés ou retirés d’un aquarium municipal.

list.append()

La méthodelist.append(x) ajoutera un élément (x) à la fin d'une liste. Nous commencerons par une liste de nos poissons dispersés dans l’aquarium.

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 à'eel' à l'indice 3.

Nous venons tout juste de recevoir un nouveau poisson dans l'aquarium aujourd'hui et nous aimerions l'ajouter à notre liste. Nous passerons la chaîne de notre nouveau type de poisson,'flounder' dans la méthodelist.append(), puis imprimerons notre liste modifiée pour confirmer que l'élément a été ajouté.

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

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

list.insert()

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

Notre aquarium a acquis un autre nouveau poisson, un anchois. Vous avez peut-être remarqué que jusqu'à présent, la listefish est classée par ordre alphabétique. Pour cette raison, nous ne voulons pas simplement ajouter la chaîne'anchovy' à la fin defish avec la fonctionlist.append(). À la place, nous utiliseronslist.insert() pour ajouter'anchovy' au début de cette liste à la position d'index0:

fish.insert(0,'anchovy')
print(fish)
Output['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 suivants se voit attribuer un nouveau numéro d’index lorsqu’ils sont tous descendus. 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 apportons une demoiselle à l'aquarium et que nous voulions maintenir l'ordre alphabétique basé sur la liste ci-dessus, nous placerions l'élément à l'index3:fish.insert(3,'damselfish').

list.extend()

Si nous voulons combiner plus d'une liste, nous pouvons utiliser la méthodelist.extend(L), qui prend une seconde liste comme argument.

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

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

Nous allons maintenant ajouter les éléments de la listemore_fish à la listefish et imprimer la liste pour nous assurer que la deuxième liste a été incorporée:

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

À ce stade, la listefish comprend 10 éléments.

list.remove()

Lorsque nous devons supprimer un élément d’une liste, nous utiliserons la méthodelist.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 font des recherches sur les espèces de poissons qui s’embrassent dans les gourami. Ils nous ont demandé de leur prêter notre gourami embrassant, nous souhaitons donc supprimer l'élément'kissing gourami' de la liste pour refléter ce changement:

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

Suite à l'utilisation de la méthodelist.remove(), notre liste ne contient plus l'élément'kissing gourami'.

Si vous transmettez un élément pourx danslist.remove() qui n’existe pas dans la liste, vous recevrez l’erreur suivante:

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

Gardez à l'esprit quelist.remove() ne supprimera que la première instance de l'objet que vous lui passez, donc si nous avions deux gouramis qui s'embrassaient dans notre aquarium et que nous n'en prêtions qu'un aux scientifiques, nous pourrions utiliser la même construction defish.remove('kissing gourami') et ont toujours le deuxième gourami qui s'embrasse sur notre liste.

list.pop()

Nous pouvons utiliser la méthodelist.pop([i]) pour renvoyer l'élément à la position d'index donnée de la liste, puis supprimer cet élément. Les crochets autour desi pour l'index nous indiquent que ce paramètre est facultatif, donc si nous ne spécifions pas d'index (comme dansfish.pop()), le dernier élément sera renvoyé et supprimé.

Notre rayon diable est devenu trop grand pour notre aquarium et, heureusement, un aquarium situé à quelques villes plus loin peut répondre aux besoins de ce rayon. Nous utiliserons.pop() et spécifierons le numéro d'index (3) de l'élément de chaîne'devil ray' pour supprimer l'élément de notre liste, et en le retournant, nous confirmerons que nous supprimons l'article correct.

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

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

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

list.index()

Lorsque les listes commencent à être longues, il devient plus difficile pour nous de compter nos éléments afin de déterminer à quelle position d'indice se situe une certaine valeur. Nous pouvons utiliserlist.index(x), oùx équivaut à une valeur d'élément, pour renvoyer l'index dans la liste où se trouve cet élément. S'il y a plus d'un élément avec la valeurx, cette méthode renverra le premier emplacement d'index.

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

Bien que la listefish ne soit pas très longue, nous sommes toujours en mesure de déterminer la position d'index de l'élément'herring' sans compter. Il est très important de connaître l’index de chaque élément afin que nous puissions manipuler efficacement les listes.

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' is not in list.

list.copy()

Lorsque nous travaillons avec une liste et que nous souhaitons la manipuler de plusieurs façons tout en conservant la liste originale à notre disposition inchangée, nous pouvons utiliserlist.copy() pour faire une copie de la liste.

Nous passerons la valeur retournée defish.copy() à la variablefish_2, puis afficherons la valeur defish_2 pour nous assurer qu'il s'agit d'une liste avec les mêmes éléments quefish.

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

À ce stade,fish etfish_2 sont des listes équivalentes.

list.reverse()

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

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

Après avoir utilisé la méthode.reverse(), notre liste commence par 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éthodelist.count(x) retournera le nombre de fois où la valeurx apparaît dans une liste spécifiée. Nous voudrons peut-être utiliser cette méthode si nous avons une longue liste avec beaucoup de valeurs correspondantes. Si nous avions un aquarium plus grand, par exemple, et que nous avions un élément pour chaque tétra néon que nous avions, nous pourrions utiliser.count() pour déterminer le nombre total de tétras néon que nous avons à un moment donné.

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

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

Comme la chaîne'goby' n'apparaît qu'une seule fois, le numéro 1 est renvoyé lorsque nous utilisons la méthode.count().

Utilisons également cette méthode avec une liste d’entiers. Notre aquarium s’engage à fournir un soin tout particulier à chaque poisson. Nous surveillons donc 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.

Comme les poissons d'un an ont des besoins diététiques particuliers, nous allons compter le nombre de poissons d'un an que nous avons:

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

L'entier1 apparaît dans la listefish_ages 3 fois, donc lorsque nous utilisons la méthode.count(), le nombre 3 est renvoyé.

list.sort()

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

Tout commelist.count(),list.sort() peut rendre plus évident le nombre d'une certaine valeur entière que nous avons, et il peut également mettre une liste non triée de nombres dans l'ordre numérique.

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

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

En utilisant.sort() avecfish_ages, les valeurs entières sont renvoyées dans l'ordre. En pratique, étant donné que ces âges correspondent à des poissons spécifiques, vous voudrez probablement faire une copie de la liste originale avant de la trier.

list.clear()

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

Le gouvernement local a décidé de reprendre notre aquarium, ce qui en fait un espace public pour les habitants de notre ville. Comme nous ne travaillons plus sur l'aquarium nous-mêmes, nous n'avons plus besoin de garder un inventaire des poissons, alors effaçons la liste defish:

fish.clear()
print(fish)
Output[]

Nous recevons des crochets en sortie après avoir utilisé la fonction.clear() surfish, nous faisant savoir que la liste est désormais vide de tous les éléments.

Conclusion

En tant que séquence d'éléments modifiable 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 avecother ways to modify lists afin d'avoir une gamme complète d'outils pour utiliser efficacement les listes dans nos programmes. De là, vous pouvez lire surlist comprehensions pour créer des listes basées sur des listes existantes.