Manipulation des listes et des tuples en Python

HTML

Cet article explore les structures de données fondamentales en Python : les listes et les tuples, en détaillant diverses opérations que l'on peut effectuer sur celles-ci.

  1. Copmrendre les listes

1.1 Qu'est-ce qu'une liste ?

Une liste est une collection ordonnée d'éléments. En Python, les listes sont définies à l'aide de crochets [], les éléments étant séparés par des virgules. Les éléments d'une liste n'ont pas besoin d'être liés entre eux et peuvent être de n'importe quel type de données (nombres, chaînes de caractères, etc.). Il est courant de nommer les listes au pluriel pour refléter qu'elles contiennent plusieurs éléments.

1.2 Syntaxe des listes

Voici un exemple simple de liste de noms de vélos :

vélos = ['trek', 'cannondale', 'redline', 'specialized']

Lorsque Python affiche une liste, il inclut les crochets :

['trek', 'cannondale', 'redline', 'specialized']

1.3 Accéder aux éléments d'une liste

Les listes étant ordonnées, on peut accéder à leurs éléments en spécifiant leur position (indice). L'indice du premier élément est 0.

vélos = ['trek', 'cannondale', 'redline', 'specialized']
premier_vélo = vélos[0]
print(premier_vélo)

Le résultat affiché est l'élément lui-même, sans les crochets :

trek

Python utilise une indexation basée sur zéro. Pour accéder au dernier élément, on peut utiliser l'indice -1.

  1. Opérations sur les éléments de liste

2.1 Modifier des éléments

Pour modifier un élément, on spécifie son indice et on lui assigne une nouvelle valeur.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms[1] = 'Lily' # Remplace 'Merry' par 'Lily'
print(noms)

2.2 Ajouter des éléments

2.2.1 Méthode append()

La méthode append() ajoute un élément à la fin de la liste.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms.append('Lily')
print(noms)

2.2.2 Méthode insert()

La méthode insert() permet d'ajouter un élément à une position spécifique de la liste.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms.insert(0, 'Lily') # Insère 'Lily' au début (indice 0)
print(noms)

2.3 Supprimer des éléments

2.3.1 Instruction del

L'instruction del supprime un élément à un indice donné.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
del noms[0] # Supprime le premier élément
print(noms)

2.3.2 Méthode pop()

La méthode pop() supprime un élément à un indice spécifié (ou le dernier élément si aucun indice n'est donné) et retourne cet élément.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
nom_supprimé = noms.pop(0) # Supprime et retourne le premier élément
print(noms)
print(f"{nom_supprimé} a été supprimé.")

Utilisez del si vous n'avez plus besoin de l'élément supprimé, et pop() si vous souhaitez l'utiliser après suppression.

2.3.3 Méthode remove()

La méthode remove() supprime la première occurrence d'une valeur spécifiée.

noms = ['Bob', 'Merry', 'Alice', 'Sharly', 'Bob']
noms.remove('Bob') # Supprime la première occurrence de 'Bob'
print(noms)

Si la valeur apparaît plusieurs fois, remove() ne supprime que la première. Pour supprimer toutes les occurrences, une boucle est nécessaire.

2.4 Trier les éléments d'une liste

2.4.1 Méthode sort()

La méthode sort() trie la liste de manière permanente.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms.sort() # Trie par ordre alphabétique
print(noms)

2.4.2 Fonction sorted()

La fonction sorted() retourne une nouvelle liste triée sans modifier la liste originale.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms_triés = sorted(noms)
print(noms_triés)
print(noms) # La liste originale reste inchangée

2.4.3 Méthode reverse()

La méthode reverse() inverse l'ordre des éléments dans la liste.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
noms.reverse()
print(noms)

Notez que reverse() ne trie pas la liste dans l'ordre alphabétique inverse, elle inverse simplement l'ordre existant.

2.5 Obtenir la longueur d'une liste

2.5.1 Fonction len()

La fonction len() retourne le nombre d'éléments dans la liste.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
longueur = len(noms)
print(longueur)
  1. Opérations sur les listes

3.1 Parcourir une liste entière

Une boucle for permet d'itérer sur chaque élément d'une liste.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
for nom in noms:
    print(nom)

3.2 Créer des listes numériques

Les fonctions range() et list() sont utiles pour créer des listes de nombres.

La fonction range(start, stop, step) génère une séquence de nombres.

# Génère les nombres de 1 à 4 (5 est exclus)
for i in range(1, 5):
    print(i)

# Génère les nombres impairs de 1 à 9 avec un pas de 2
for i in range(1, 10, 2):
    print(i)

La fonction list() convertit la séquence générée par range() en une liste.

nombres = list(range(1, 5))
print(nombres)

3.3 List Comprehensions

Les list comprehensions offrent une syntaxe concise pour créer des listes. Elles combinent la boucle for et la création d'éléments en une seule ligne.

carrés = [valeur**2 for valeur in range(1, 5)]
print(carrés) # Résultat : [1, 4, 9, 16]

3.4 Slicing (Découpage de listes)

Le slicing permet d'accéder à une partie d'une liste en spécifiant une plage d'indices.

noms = ['Bob', 'Merry', 'Alice', 'Sharly']
# Obtient les éléments de l'indice 1 (inclus) à 3 (exclus)
sous_liste = noms[1:3]
print(sous_liste) # Résultat : ['Merry', 'Alice']

Si le premier indice est omis, le slicing commence au début de la liste. Si le second indice est omis, il va jusqu'à la fin de la liste.

3.5 Copier une liste

Pour créer une copie indépendante d'une liste, utilisez le slicing sur toute la longueur de la liste.

mes_plats = ['pizza', 'falafel', 'gâteau aux carottes']
plats_ami = mes_plats[:] # Crée une copie indépendante

# Alternativement : plats_ami = list(mes_plats) ou plats_ami = mes_plats.copy()

print(mes_plats)
print(plats_ami)

L'affectasion directe (plats_ami = mes_plats) ne crée pas de copie ; les deux variables pointeront vers la même liste.

  1. Tuples

Les tuples sont similaires aux listes, mais ils sont immuables (leurs éléments ne peuvent pas être modifiés après création). Les tuples sont définis à l'aide de parenthèses ().

dimensions = (200, 50)
print(dimensions[0]) # Accès aux éléments comme pour les listes

# Tentative de modification échouera :
# dimensions[0] = 250 # Ceci lèvera une erreur TypeError

# Il est possible de réaffecter une nouvelle valeur à la variable du tuple :
dimensions = (300, 100)
print(dimensions)

Les tuples sont utiles pour les données qui ne doivent pas changer, comme les coordonnées ou les configurations.

Étiquettes: Python listes tuples programmation structures de données

Publié le 5 juillet à 20h05