Listes Python

Les listes sont l’un des 4 types de données en Python utilisés pour stocker des collections de données.

# List: collection ordonnée d'éléments entre crochets
['John', 'Peter', 'Debora', 'Charles']

Obtenir des valeurs avec des index

# Accéder aux éléments de la liste en utilisant l'index (base 0, le premier élément est à l'index 0)
furniture = ['table', 'chair', 'rack', 'shelf']

furniture[0]  # Retourne le premier élément : 'table'
'table'
furniture[1]
'chair'
furniture[2]
'rack'
furniture[3]
'shelf'

Index négatifs

# Index négatif : accéder aux éléments depuis la fin de la liste
furniture = ['table', 'chair', 'rack', 'shelf']

furniture[-1]  # Retourne le dernier élément : 'shelf'
'shelf'
furniture[-3]
'chair'
f'The {furniture[-1]} is bigger than the {furniture[-3]}'
'The shelf is bigger than the chair'
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que retourne furniture[-1] si furniture = ['table', 'chair', 'rack', 'shelf'] ?
A. 'table'
B. 'shelf'
C. ['shelf']
D. IndexError

Obtenir des sous-listes avec des Slices

# Slicing : obtenir une sous-liste en utilisant la syntaxe [début:fin] (fin est exclusive)
furniture = ['table', 'chair', 'rack', 'shelf']

furniture[0:4]  # Retourne les éléments de l'index 0 à 3 (4 exclu)
['table', 'chair', 'rack', 'shelf']
furniture[1:3]
['chair', 'rack']
furniture[0:-1]
['table', 'chair', 'rack']
# Slice depuis le début : omettre l'index de début (par défaut à 0)
furniture[:2]  # Retourne les deux premiers éléments
['table', 'chair']
# Slice jusqu'à la fin : omettre l'index de fin (par défaut jusqu'à la fin de la liste)
furniture[1:]  # Retourne tous les éléments de l'index 1 jusqu'à la fin
['chair', 'rack', 'shelf']
furniture[:]
['table', 'chair', 'rack', 'shelf']

Le slicing de la liste complète effectuera une copie :

# Le slicing crée une copie : [:] crée une copie superficielle (shallow copy) de la liste
spam = ['cat', 'bat', 'rat', 'elephant']
spam2 = spam[:]  # Créer une copie, pas une référence
spam2
['cat', 'bat', 'rat', 'elephant']
spam.append('dog')
spam
['cat', 'bat', 'rat', 'elephant', 'dog']
spam2
['cat', 'bat', 'rat', 'elephant']
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que crée spam[:] lorsqu'il est appliqué à une liste spam ?
A. Une référence à la même liste
B. Une liste vide
C. Une copie superficielle de la liste
D. Une liste inversée

Obtenir la longueur d’une liste avec len()

# len() retourne le nombre d'éléments dans une liste
furniture = ['table', 'chair', 'rack', 'shelf']
len(furniture)  # Retourne 4
4

Modifier des valeurs avec des index

# Modifier les éléments de la liste en assignant de nouvelles valeurs aux index
furniture = ['table', 'chair', 'rack', 'shelf']

furniture[0] = 'desk'  # Remplacer le premier élément
furniture
['desk', 'chair', 'rack', 'shelf']
furniture[2] = furniture[1]
furniture
['desk', 'chair', 'chair', 'shelf']
furniture[-1] = 'bed'
furniture
['desk', 'chair', 'chair', 'bed']

Concaténation et Répétition

# Concaténation de listes : combiner deux listes en utilisant l'opérateur +
[1, 2, 3] + ['A', 'B', 'C']  # Retourne [1, 2, 3, 'A', 'B', 'C']
[1, 2, 3, 'A', 'B', 'C']
# Répétition de liste : répéter la liste plusieurs fois en utilisant l'opérateur *
['X', 'Y', 'Z'] * 3  # Retourne ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']
my_list = [1, 2, 3]
my_list = my_list + ['A', 'B', 'C']
my_list
[1, 2, 3, 'A', 'B', 'C']

Utilisation de boucles for avec des Listes

# Itérer sur les éléments de la liste en utilisant une boucle for
furniture = ['table', 'chair', 'rack', 'shelf']

for item in furniture:  # Boucler sur chaque élément
    print(item)
table
chair
rack
shelf

Obtenir l’index dans une boucle avec enumerate()

# enumerate() retourne à la fois l'index et la valeur dans une boucle
furniture = ['table', 'chair', 'rack', 'shelf']

for index, item in enumerate(furniture):  # Obtenir l'index et l'élément ensemble
    print(f'index: {index} - item: {item}')
index: 0 - item: table
index: 1 - item: chair
index: 2 - item: rack
index: 3 - item: shelf

Boucler sur plusieurs listes avec zip()

# zip() combine plusieurs listes élément par élément dans une boucle
furniture = ['table', 'chair', 'rack', 'shelf']
price = [100, 50, 80, 40]

for item, amount in zip(furniture, price):  # Associer les éléments des deux listes
    print(f'The {item} costs ${amount}')
The table costs $100
The chair costs $50
The rack costs $80
The shelf costs $40

Les opérateurs in et not in

# Opérateur in : vérifier si un élément existe dans une liste
'rack' in ['table', 'chair', 'rack', 'shelf']  # Retourne True
True
'bed' in ['table', 'chair', 'rack', 'shelf']
False
furniture = ['table', 'chair', 'rack', 'shelf']
'bed' not in furniture
True
'rack' not in furniture
False

L’astuce de l’affectation multiple

L’astuce de l’affectation multiple est un raccourci qui vous permet d’assigner plusieurs variables avec les valeurs d’une liste en une seule ligne de code. Donc au lieu de faire ceci :

furniture = ['table', 'chair', 'rack', 'shelf']
table = furniture[0]
chair = furniture[1]
rack = furniture[2]
shelf = furniture[3]

Vous pourriez taper cette ligne de code :

furniture = ['table', 'chair', 'rack', 'shelf']
table, chair, rack, shelf = furniture

table
'table'
chair
'chair'
rack
'rack'
shelf
'shelf'

L’astuce de l’affectation multiple peut également être utilisée pour échanger les valeurs de deux variables :

a, b = 'table', 'chair'
a, b = b, a
print(a)
chair
print(b)
table

La méthode index

La méthode index vous permet de trouver l’index d’une valeur en passant son nom :

furniture = ['table', 'chair', 'rack', 'shelf']
furniture.index('chair')
1

Ajouter des Valeurs

append()

append ajoute un élément à la fin d’une list :

furniture = ['table', 'chair', 'rack', 'shelf']
furniture.append('bed')
furniture
['table', 'chair', 'rack', 'shelf', 'bed']
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que fait la méthode append() sur une liste ?
A. Ajoute un élément à la fin de la liste
B. Ajoute un élément au début de la liste
C. Remplace le dernier élément
D. Supprime le dernier élément

insert()

insert ajoute un élément à une list à une position donnée :

furniture = ['table', 'chair', 'rack', 'shelf']
furniture.insert(1, 'bed')
furniture
['table', 'bed', 'chair', 'rack', 'shelf']

Supprimer des Valeurs

del

del supprime un élément en utilisant l’index :

furniture = ['table', 'chair', 'rack', 'shelf']
del furniture[2]
furniture
['table', 'chair', 'shelf']
del furniture[2]
furniture
['table', 'chair']

remove()

remove supprime un élément en utilisant sa valeur réelle :

furniture = ['table', 'chair', 'rack', 'shelf']
furniture.remove('chair')
furniture
['table', 'rack', 'shelf']

Supprimer des éléments répétés

Si la valeur apparaît plusieurs fois dans la liste, seule la première occurrence de la valeur sera supprimée.

pop()

Par défaut, pop supprime et retourne le dernier élément de la liste. Vous pouvez également passer l’index de l’élément comme paramètre optionnel :

animals = ['cat', 'bat', 'rat', 'elephant']

animals.pop()
'elephant'
animals
['cat', 'bat', 'rat']
animals.pop(0)
'cat'
animals
['bat', 'rat']
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Que fait pop() lorsqu'il est appelé sur une liste ?
A. Supprime uniquement le dernier élément
B. Supprime et retourne un élément (le dernier élément par défaut, ou l'index spécifié)
C. Retourne uniquement le dernier élément sans le supprimer
D. Supprime tous les éléments de la liste

Trier les valeurs avec sort()

numbers = [2, 5, 3.14, 1, -7]
numbers.sort()
numbers
[-7, 1, 2, 3.14, 5]
furniture = ['table', 'chair', 'rack', 'shelf']
furniture.sort()
furniture
['chair', 'rack', 'shelf', 'table']

Vous pouvez également passer True pour l’argument mot-clé reverse pour que sort() trie les valeurs dans l’ordre inverse :

furniture.sort(reverse=True)
furniture
['table', 'shelf', 'rack', 'chair']

Si vous avez besoin de trier les valeurs dans l’ordre alphabétique normal, passez str.lower pour l’argument mot-clé key dans l’appel de la méthode sort() :

letters = ['a', 'z', 'A', 'Z']
letters.sort(key=str.lower)
letters
['a', 'A', 'z', 'Z']

Vous pouvez utiliser la fonction intégrée sorted pour retourner une nouvelle liste :

furniture = ['table', 'chair', 'rack', 'shelf']
sorted(furniture)
['chair', 'rack', 'shelf', 'base-title']

Le type de données Tuple

Tuples vs Listes

La différence clé entre les tuples et les listes est que, tandis que les tuples sont des objets immuables, les listes sont mutables. Cela signifie que les tuples ne peuvent pas être modifiés alors que les listes peuvent être modifiées. Les tuples sont plus économes en mémoire que les listes.

furniture = ('table', 'chair', 'rack', 'shelf')

furniture[0]
'table'
furniture[1:3]
('chair', 'rack')
len(furniture)
4

La principale façon dont les tuples diffèrent des listes est que les tuples, comme les chaînes de caractères, sont immuables.

Conversion entre list() et tuple()

tuple(['cat', 'dog', 5])
('cat', 'dog', 5)
list(('cat', 'dog', 5))
['cat', 'dog', 5]
list('hello')
['h', 'e', 'l', 'l', 'o']
Quiz

Connectez-vous pour répondre à ce quiz et suivre votre progression d'apprentissage

Quelle est la principale différence entre les listes et les tuples en Python ?
A. Les listes ne peuvent contenir que des nombres, les tuples peuvent contenir n'importe quoi
B. Les tuples sont plus rapides à créer
C. Les listes sont mutables (peuvent être modifiées), les tuples sont immuables (ne peuvent pas être modifiés)
D. Les listes utilisent des crochets, les tuples utilisent des accolades

Liens pertinents