Aller au contenu principal

Les listes et dictionnaires

Qu'est-ce qu'une liste ?

Une liste est une collection ordonnée et modifiable d'éléments. En Python, elle est définie par des crochets [] et peut contenir des éléments de différents types (même si généralement, on utilise des éléments homogènes).

Pour créer une liste :

# Liste vide
ma_liste = []

# Liste avec des éléments
fruits = ["pomme", "banane", "cerise"]

# Liste avec différents types d'éléments
mixte = [42, "Python", True, 3.14]

Pour accéder aux éléments de la liste :

# Les indices commencent à 0 en Python.
# Accéder au premier élément
print(fruits[0]) # pomme

# Accéder au dernier élément
print(fruits[-1]) # cerise

Pour modifier une liste existante :

# Modifier un élément
fruits[1] = "orange"
print(fruits) # ['pomme', 'orange', 'cerise']

# Ajouter des éléments
fruits.append("fraise") # Ajoute à la fin
print(fruits) # ['pomme', 'orange', 'cerise', 'fraise']

# Insérer à une position spécifique
fruits.insert(1, "kiwi")
print(fruits) # ['pomme', 'kiwi', 'orange', 'cerise', 'fraise']

# Supprimer un élément
fruits.remove("kiwi")
print(fruits) # ['pomme', 'orange', 'cerise', 'fraise']

# Supprimer par indice
del fruits[0]
print(fruits) # ['orange', 'cerise', 'fraise']

Pour itérer sur une liste :

# Boucle for
for fruit in fruits:
print(fruit)

# Avec un indice
for i in range(len(fruits)):
print(f"L'élément {i} est {fruits[i]}")

voici des opérations couraments effectuées avec les listes :

# Longueur de la liste
print(len(fruits)) # Nombre d'éléments

# Vérifier si un élément est présent
print("cerise" in fruits) # True

# Trier une liste
nombres = [3, 1, 4, 2]
nombres.sort() # Trie sur place
print(nombres) # [1, 2, 3, 4]

# Obtenir une copie triée sans modifier la liste
sorted_nombres = sorted(nombres, reverse=True)
print(sorted_nombres) # [4, 3, 2, 1]

Qu'est-ce qu'un dictionnaire ?

Un dictionnaire est une collection non ordonnée d'éléments sous forme de paires clé-valeur. On l'utilise pour associer des clés uniques à des valeurs.

Pour créer un dictionnaire :

# Dictionnaire vide
mon_dict = {}

# Dictionnaire avec des données
etudiant = {
"nom": "Alice",
"âge": 21,
"matière": "Informatique"
}

Accéder aux valeurs d'un dictionnaire :

# Accéder à une valeur par sa clé
print(etudiant["nom"]) # Alice

# Accéder avec la méthode get (plus sûr)
print(etudiant.get("âge")) # 21
print(etudiant.get("adresse", "Non disponible")) # Retourne une valeur par défaut

Pour modifier un dictionnaire :

# Ajouter une nouvelle paire clé-valeur
etudiant["adresse"] = "Paris"
print(etudiant)

# Modifier une valeur existante
etudiant["âge"] = 22
print(etudiant)

# Supprimer une clé
del etudiant["matière"]
print(etudiant)

Pour itérer sur un dictionnaire :

# Parcourir les clés
for key in etudiant:
print(key)

# Parcourir les valeurs
for valeur in etudiant.values():
print(valeur)

# Parcourir les paires clé-valeur
for key, valeur in etudiant.items():
print(f"{key}: {valeur}")

Voici les opérations courament effectuées sur les dictionnaires :

# Vérifier si une clé existe
print("nom" in etudiant) # True

# Obtenir toutes les clés
print(list(etudiant.keys())) # ['nom', 'âge', 'adresse']

# Obtenir toutes les valeurs
print(list(etudiant.values())) # ['Alice', 22, 'Paris']

Voici un exemple pratique de liste et de dictionnaires combiné :

# Liste des étudiants avec leurs notes
etudiants = [
{"nom": "Alice", "notes": {"Math": 15, "Informatique": 18}},
{"nom": "Bob", "notes": {"Math": 12, "Informatique": 14}},
{"nom": "Charlie", "notes": {"Math": 9, "Informatique": 13}},
]

# Afficher les noms et moyennes
for etudiant in etudiants:
nom = etudiant["nom"]
notes = etudiant["notes"]
moyenne = sum(notes.values()) / len(notes)
print(f"{nom} a une moyenne de {moyenne:.2f}")

Conclusion

Les listes et dictionnaires sont des structures fondamentales en Python. Utilisez les listes pour des données ordonnées comme des listes de noms. Utilisez les dictionnaires lorsque chaque élément a besoin d'une clé descriptive, comme une fiche d'information.