🐍 Cours de programmation Python sur Excel 💻

🔡 Les listes

Une liste est une structure de données permettant de stocker plusieurs valeurs dans une seule variable. Une variable classique contient une seule valeur :


    prenom = "Thomas"

Une liste peut en contenir plusieurs :


    prenoms = ["Thomas", "Alice", "Marc"]

Les éléments d'une liste sont placés entre crochets [ ] et séparés par des virgules.

✴️ Créer une liste

Une liste peut contenir autant de valeurs que nécessaire.


    nombres = [12, 25, 8, 44]

    animaux = ["Chien", "Chat", "Poule"]

    notes = [12.5, 14.0, 18.5]

Python autorise également les listes contenant plusieurs types de données ou être vide.


    donnees = ["Thomas", 25, True, 1.82]
    liste_vide = []


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

Chaque élément possède une position appelée indice. Le premier élément se trouve toujours à l'indice 0. Puis on incrémente l'indice pour se déplacer dans la liste depuis le premier élément jusqu'au dernier. Il est également possible d'utiliser des indices négatifs. Dans ce cas, Python commence à compter depuis la fin de la liste (indice -1).


    animaux = ["Chien", "Chat", "Rat", "Coq"]
Indice positif Valeur Indice négatif
0 Chien -4
1 Chat -3
2 Rat -2
3 Coq -1

Pour accéder à un élément, on indique son indice entre crochets.


    animaux = ["Chien", "Chat", "Rat", "Coq"]

    print(animaux[0])
    print(animaux[2])
    print(animaux[-1])
    print(animaux[-3])

Résultat :


    Chien
    Rat
    Coq
    Chat

Si l'indice n'existe pas, Python génère une erreur.


    animaux[10]

Erreur :


    IndexError

Sous-listes (slicing)

Il est possible de récupérer plusieurs éléments à la fois grâce au découpage (slicing). L'indice de début est inclus alors que l'indice de fin est exclu.


    animaux = ["Chien", "Chat", "Rat", "Coq", "Vache", "Cochon"]

    print(animaux[0:3])
    print(animaux[2:])

Résultat :


    ["Chien", "Chat", "Rat"]
    ["Rat", "Coq", "Vache", "Cochon"]


👐 Manipuler une liste

Modifier une valeur


    animaux = ["Chien", "Chat", "Rat"]

    animaux[1] = "Lion"

    print(animaux)

Résultat :


    ["Chien", "Lion", "Rat"]

Ajouter un élément

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


    animaux = ["Chien", "Chat"]

    animaux.append("Poule")

    print(animaux)

Résultat :


    ["Chien", "Chat", "Poule"]

Supprimer un élément

La méthode remove() supprime une valeur présente dans la liste.


    animaux = ["Chien", "Chat", "Poule"]

    animaux.remove("Chat")

    print(animaux)

Résultat :


    ["Chien", "Poule"]

Connaître le nombre d'éléments

La fonction len() renvoie la taille d'une liste.


    animaux = ["Chien", "Chat", "Rat"]

    print(len(animaux))

Résultat :


    3

Concaténer deux listes

L'opérateur + permet de fusionner deux listes.


    liste1 = ["Chien", "Chat"]
    liste2 = ["Rat", "Coq"]

    print(liste1 + liste2)

Résultat :


    ["Chien", "Chat", "Rat", "Coq"]

Dupliquer une liste

L'opérateur * permet de répéter son contenu.


    print(["A", "B"] * 3)

Résultat :


    ["A", "B", "A", "B", "A", "B"]


📑 Les listes de listes

Une liste peut contenir d'autres listes. On parle alors de liste de listes ou de tableau à plusieurs dimensions.


    zoo = [["Girafe", 4], ["Singe", 10], ["Lion", 6]]

Premier niveau :


    print(zoo[1])

Résultat :


    ["Singe", 10]

Deuxième niveau :


    print(zoo[2][0])

Résultat :


    Lion

Le premier indice désigne la ligne et le second désigne la colonne.

🟩 Les listes et Excel

Lorsque l'on utilise une fonction Python dans Excel, les données provenant des cellules sont automatiquement converties en types Python. Une cellule unique est généralement transmise comme une valeur simple, en revanche, lorsqu'une plage de cellules est transmise à une fonction Python, Excel renvoie une liste de listes.

Exemple Excel :

10 20
30 40

Si cette plage est passée à une fonction, Python recevra :


    [[10.0, 20.0], [30.0, 40.0]]

Chaque liste interne représente une ligne du tableau Excel, ainsi :


    print(valeurs[0])       # Correspond à la première ligne
    print(valeurs[1][0])    # Correspond à la cellule (ligne = 2, colonne = 1)

Résultat :


    [10.0, 20.0]
    30.0