Listes et tableaux
Objectifs
Rappeler les concepts fondamentaux des listes en Python et leur manipulation.
Création de listes
Déclaration et initialisation
# Liste vide
liste_vide = []
liste_vide2 = list()
# Liste avec des éléments
nombres = [1, 2, 3, 4, 5]
fruits = ["pomme", "banane", "orange"]
mixte = [1, "hello", 3.14, True]
# Liste avec répétition
zeros = [0] * 5 # [0, 0, 0, 0, 0]
Création avec range()
# Convertir range en liste
nombres = list(range(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
pairs = list(range(0, 11, 2)) # [0, 2, 4, 6, 8, 10]
Accès aux éléments
Indexation
fruits = ["pomme", "banane", "orange", "kiwi"]
# Index positifs
print(fruits[0]) # pomme (premier élément)
print(fruits[1]) # banane
print(fruits[3]) # kiwi (dernier élément)
# Index négatifs
print(fruits[-1]) # kiwi (dernier élément)
print(fruits[-2]) # orange (avant-dernier)
Slicing (tranches)
nombres = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Syntaxe : liste[début:fin:pas]
print(nombres[2:5]) # [2, 3, 4]
print(nombres[:3]) # [0, 1, 2]
print(nombres[7:]) # [7, 8, 9]
print(nombres[::2]) # [0, 2, 4, 6, 8]
print(nombres[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Modification des listes
Modification d'éléments
fruits = ["pomme", "banane", "orange"]
fruits[1] = "poire" # Remplace "banane" par "poire"
print(fruits) # ["pomme", "poire", "orange"]
Ajout d'éléments
fruits = ["pomme", "banane"]
# Ajouter à la fin
fruits.append("orange")
print(fruits) # ["pomme", "banane", "orange"]
# Insérer à une position
fruits.insert(1, "poire")
print(fruits) # ["pomme", "poire", "banane", "orange"]
# Étendre avec une autre liste
fruits.extend(["kiwi", "mangue"])
print(fruits) # ["pomme", "poire", "banane", "orange", "kiwi", "mangue"]
Suppression d'éléments
fruits = ["pomme", "banane", "orange", "kiwi"]
# Supprimer par valeur
fruits.remove("banane")
print(fruits) # ["pomme", "orange", "kiwi"]
# Supprimer par index
del fruits[1]
print(fruits) # ["pomme", "kiwi"]
# Supprimer et récupérer le dernier élément
dernier = fruits.pop()
print(dernier) # kiwi
print(fruits) # ["pomme"]
# Vider la liste
fruits.clear()
print(fruits) # []
Parcours de listes
Parcours simple
fruits = ["pomme", "banane", "orange"]
# Parcours des éléments
for fruit in fruits:
print(fruit)
# Parcours avec index
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
# Parcours avec enumerate
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")
Parcours avec conditions
nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Afficher les nombres pairs
for nombre in nombres:
if nombre % 2 == 0:
print(nombre)
# Compter les éléments > 5
compteur = 0
for nombre in nombres:
if nombre > 5:
compteur += 1
print(f"Nombres > 5 : {compteur}")
Méthodes utiles
Recherche et test
fruits = ["pomme", "banane", "orange", "banane"]
# Vérifier la présence
print("pomme" in fruits) # True
print("kiwi" not in fruits) # True
# Trouver l'index
index = fruits.index("banane") # 1 (première occurrence)
print(index)
# Compter les occurrences
compteur = fruits.count("banane") # 2
print(compteur)
Tri et organisation
nombres = [3, 1, 4, 1, 5, 9, 2, 6]
# Trier la liste (modifie l'original)
nombres.sort()
print(nombres) # [1, 1, 2, 3, 4, 5, 6, 9]
# Trier en ordre décroissant
nombres.sort(reverse=True)
print(nombres) # [9, 6, 5, 4, 3, 2, 1, 1]
# Créer une nouvelle liste triée
originale = [3, 1, 4, 1, 5]
triee = sorted(originale)
print(originale) # [3, 1, 4, 1, 5] (inchangée)
print(triee) # [1, 1, 3, 4, 5]
# Inverser l'ordre
nombres.reverse()
print(nombres)
Listes en compréhension
Syntaxe de base
# Créer une liste des carrés
carres = [x**2 for x in range(10)]
print(carres) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# Filtrer avec condition
pairs = [x for x in range(20) if x % 2 == 0]
print(pairs) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# Transformer des chaînes
mots = ["python", "java", "javascript"]
majuscules = [mot.upper() for mot in mots]
print(majuscules) # ["PYTHON", "JAVA", "JAVASCRIPT"]
Tableaux à deux dimensions
Création et manipulation
# Matrice 3x3
matrice = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# Accès aux éléments
print(matrice[1][2]) # 6 (ligne 1, colonne 2)
# Parcours d'une matrice
for ligne in matrice:
for element in ligne:
print(element, end=" ")
print() # Nouvelle ligne
# Parcours avec indices
for i in range(len(matrice)):
for j in range(len(matrice[i])):
print(f"matrice[{i}][{j}] = {matrice[i][j]}")
Exercices de révision
Exercice 1 : Manipulation de base
Écrire des fonctions pour : 1. Trouver le maximum et minimum d'une liste 2. Calculer la moyenne d'une liste de nombres 3. Supprimer les doublons d'une liste 4. Fusionner deux listes triées
Exercice 2 : Recherche et tri
Écrire des programmes pour : 1. Recherche linéaire dans une liste 2. Tri par sélection 3. Compter les occurrences de chaque élément 4. Trouver le deuxième plus grand élément
Exercice 3 : Listes de listes
Travailler avec des matrices pour : 1. Additionner deux matrices 2. Transposer une matrice 3. Trouver la somme de chaque ligne 4. Vérifier si une matrice est symétrique
Exercice 4 : Applications pratiques
Créer des programmes pour : 1. Gestionnaire de notes d'élèves 2. Inventaire de magasin 3. Carnet d'adresses simple 4. Jeu du pendu avec liste de mots