DEV Community

Cover image for Améliorer votre Python: Maîtriser les Listes
 Eric Le Codeur
Eric Le Codeur

Posted on

Améliorer votre Python: Maîtriser les Listes

*** Je publie des articles régulièrement et en français. Pour ne rien manquer suivez moi en cliquant Follow

Bonjour les amis!

Aujourd'hui nous allons travailler sur un aspect très important pour tous ceux qui veulent devenir des experts Python: Les Listes.

En Python, les listes sont une collection d'éléments dans un ordre particulier. Vous pouvez mettre tout ce que vous voulez dans une liste.

Par convention, normalement, le nom de votre liste sera pluriel. Par exemple, une liste de produit peut être nommée: produits.

Python utilise des crochets [] pour indiquer une liste, et les éléments individuels sont séparés par des virgules.

Une liste peut être créé vide [] ou avec des éléments déjà à l'intérieur.

# vide
produits = [] 

# Avec éléments
produits = ['iPhone', 'iPad', 'iMac']
Enter fullscreen mode Exit fullscreen mode

Une liste peut contenir des éléments de différent type:

liste_divers = ['pomme', 9.95, True, 'autre']
Enter fullscreen mode Exit fullscreen mode

Une liste peut même contenir une autre liste

groupe = ['groupe1', ['Marc', 'Pierre'], 'groupe2'] 
Enter fullscreen mode Exit fullscreen mode

Il existe plusieurs façon d'ajouter des éléments à une liste:

# Exemple une liste de fruits
fruits = ['orange', 'pomme', 'melon']

# Ajouter un fruit à la liste
fruits.append('banane')
# ['orange', 'pomme', 'melon', 'banane']

# Insère un élément à la position x
fruits.insert(1, 'fraise') 
# Va inséré 'fraise' à la position 1
# ['orange', 'fraise', 'pomme', 'melon', 'banane']
Enter fullscreen mode Exit fullscreen mode

La liste est une base zéro. Cela signifie que la première position est 0 et la deuxième position est 1, etc.

Vous pouvez d'ailleurs accéder à un élément unique de votre liste en utilisant les crochets []:

fruits[0]  # premier item
fruits[-1] # dernier item
Enter fullscreen mode Exit fullscreen mode

La position -1 représente le dernier élément de la liste.

Avec cette logique de position négative il est possible d'accédé à l'avant dernier élément en utilisant -2 et ainsi de suite pour le reste de la liste.

fruits = ['orange', 'fraise', 'pomme', 'melon', 'banane']
dernier_fruit = fruits[-1] # banane
avant_dernier_fruit = fruits[-2] # melon
avant_avant_dernier = fruits[-3] # pomme
Enter fullscreen mode Exit fullscreen mode

Pour déterminer le nombre d'éléments dans une liste

nb_items = len(fruits) # 5
Enter fullscreen mode Exit fullscreen mode

Voici comment accéder à une liste dans une liste

groupe = ['groupe1', ['Marc', 'Pierre'], 'groupe2']
print(groupe[1][0]) # Marc
print(groupe[1][1]) # Pierre
Enter fullscreen mode Exit fullscreen mode

Il est possible d'enlever des éléments de la liste

del fruits[1]   # enlève fraise
Enter fullscreen mode Exit fullscreen mode

Enlever le dernier élément

lastFruit = fruits.pop()   # enlever le dernier element
Enter fullscreen mode Exit fullscreen mode

Il est possible de récupérer une partie (tranche) de la liste.

fruits = ['orange', 'fraise', 'pomme', 'melon', 'banane']
ma_liste = fruits[0:3] # retourne les items 0, 1, 2
# ['orange', 'fraise' ,'pomme']

# Même chose mais syntaxe abrégée
ma_liste = fruits[:3] # retourne les items 0, 1, 2
# Quand le no n'est pas spécifié, Python commence à la position 0

# Autre exemple
ma_liste = fruits[2:]  # retourne les derniers items
# ['melon','banane']

# Copie complète
copie_fruits = fruits[:] 
# ['orange', 'fraise', 'pomme', 'melon', 'banane']

# Changer l'ordre. L'ajout de :-1 permet de renverser l'ordre de la tranche retournée.
ma_list = fruits[0:3:-1]
# ['pomme', 'fraise', 'orange'] 

# Un autre exemple
copie_fruits = fruits[::-1]
# Va faire une copie et renverse l'ordre
# ['banane', ',melon', 'pomme', 'fraise', 'orange'] 
Enter fullscreen mode Exit fullscreen mode

Mais plus simplement, il existe une méthode qui permet de renverser une liste

fruits.reverse()
Enter fullscreen mode Exit fullscreen mode

Il est possible de créer une liste à partir d'un string

couleurs = 'rouge, vert, bleu'.split(', ')
# La method split divise la string en éléments
#['rouge', 'vert', 'bleu']
Enter fullscreen mode Exit fullscreen mode

Pour trier une liste vous utilisé la syntaxe suivante:

fruits = ['orange', 'fraise', 'pomme', 'melon', 'banane']
fruits.sort() # ['banane', 'fraise', 'melon', 'orange', 'pomme']

# Trier en ordre inversé
fruits.sort(reverse=True) # ['pomme', 'orange', 'melon', 'fraise', 'banane']
Enter fullscreen mode Exit fullscreen mode

Méthode pour fusionner / concatener deux listes

# Array concact
couleurs1 = ['rouge', 'bleu']
couleurs2 = ['vert', 'jaune']
couleurs3 = couleurs1 + couleurs2 
# ['rouge', 'bleu', 'vert', 'jaune']

# Concatener avec le "unpacking"
couleurs3 = [*couleurs1, *couleurs2]
# ['rouge', 'bleu', 'vert', 'jaune']
Enter fullscreen mode Exit fullscreen mode

Une liste peut être assigné à plusieurs variables

# Assignation multiple
nom, prix = ['iPhone', 599]
# nom = 'iPhone' 
# prix = 599
Enter fullscreen mode Exit fullscreen mode

Un Tuple est une liste non altérable. La syntaxe est des parenthèses a la place des crochets.

# Creation d'un Tuple
couleurs = ('rouge', 'vert', 'bleu')
Enter fullscreen mode Exit fullscreen mode

Parcourir les éléments d'une liste

# Itération dans la liste
for couleur in couleurs:
  print(couleur)
Enter fullscreen mode Exit fullscreen mode

Creation d'une liste avec un "range" de nombre

numbers = List(range(1, 10)) 
# 1 2 3 4 5 6 7 8 9
Enter fullscreen mode Exit fullscreen mode

La List Comprehension offre une syntaxe plus courte lorsque vous le souhaitez créer une nouvelle liste basée sur les valeurs d'une liste existante.

Voici un exemple sans List Comprehension

fruits = ["pomme", "banane", "fraise", "kiwi", "mangue"]
liste_fruits = []

for item in fruits:
  if "a" in item:
    liste_fruits.append(item)

print(liste_fruits)
# ['banane','fraise', 'mangue']

Enter fullscreen mode Exit fullscreen mode

Voici un exemple avec List Comprehension

fruits = ["pomme", "banane", "fraise", "kiwi", "mangue"]
liste_fruits = [item for item in fruits if "a" in item]

print(liste_fruit)
Enter fullscreen mode Exit fullscreen mode

La syntaxe des List Comprehension:
[expression for item in iterable if condition == True]

Top comments (0)