Aller au contenu

🏁 Rappels sur les listes Python

Remarque

Cette page rappelle rapidement les outils fondamentaux sur les listes Python.

Il ne s'agit pas d'un cours exhaustif sur ce thème.

Présentation

Les listes sont des structures de données linéaires : des valeurs stockée dans un certain ordre.

Considérons par exemple les données suivantes présentant des informations sur un animal (nom, espèce, date de naissance) :

Oli Chat 10 juin 2018

Ces données sont organisées en colonnes :

  • la première contient le nom,
  • la deuxième son espèce,
  • la troisième son jour de naissance,
  • etc

Ces données peuvent être représentées dans un objet Python de type list :

# indices     0       1   2       3     4
animal = ["Oli", "Chat", 10, "juin", 2018]

Dans ce cadre on distingue les indices et les valeurs des éléments :

  • l'indice correspond à la position de l'élément dans la liste (un peu comme le numéro de la colonne),

  • la valeur est le contenu à proprement parler.

Attention

En Python comme dans bien d'autres langages informatiques, les indices débutent à 0.

Notons immédiatement que, dans une liste, les valeurs peuvent être de types variés : ici des chaînes de caractères (str) et des entiers (int).

Utilisation

On rappelle les opérations suivantes sur les listes :

Création
  • Création d'une liste vide :
vide = [ ]
  • Création d'une liste « à la main » :
animal = ["Oli", "Chat", 10, "juin", 2018]
  • Création d'une liste contenant plusieurs fois la même valeur :
mille_None = [None] * 1000
Longueur
  • La longueur d'une liste est données par la fonction len:
>>> repertoire = ["Clarissa", "Dalloway", 14, "May", 1925]
>>> len(repertoire)
5
Lecture de valeur

Les valeurs sont repérées par leur indice (la première est à l'indice 0).

  • On accède à une valeur en utilisant des crochets :
>>> repertoire = ["Clarissa", "Dalloway", 14, "May", 1925]
>>> repertoire[0]
'Clarissa'
>>> repertoire[2]
14
  • La dernière valeur est à l'indice len(repertoire) - 1 :
>>> repertoire[len(repertoire) - 1]
1925
  • Python autorise les indices négatifs : la dernière valeur a pour indice -1, l'avant-dernière -2, etc
>>> repertoire[-1]
1925
>>> repertoire[-2]
'May'
Modification de valeur
  • On modifie des valeurs avec une simple affectation :
>>> animaux = ["éléfants", "girafes", "chevals"]
>>> animaux[0] = "éléphants"
>>> animaux[2] = "chevaux"
>>> animaux
['éléphants', 'girafes', 'chevaux']
Parcours

On considère la liste animaux = ['éléphants', 'girafes', 'chevaux']

  • Parcours selon les indices :
>>> for i in range(len(animaux)):
        print("Indice :",i, "; Valeur :", animaux[i])
Indice : 0 ; Valeur : 'éléphants'
Indice : 1 ; Valeur : 'girafes'
Indice : 2 ; Valeur : 'chevaux'
  • Les parcours selon les valeurs :
>>> for animal in animaux:
        print(animal)
'éléphants'
'girafes'
'chevaux'
Ajout d'éléments

On peut ajouter des éléments à la fin d'une liste en utilisant append :

>>> conjonctions = ["mais", "ou", "et", "donc", "or"]
>>> conjonctions.append("ni")
>>> conjonctions.append("car")
>>> conjonctions
['mais', 'ou', 'et', 'donc', 'or', 'ni', 'car']

Exercices

Manipulations élémentaires

Compléter le code ci-dessous afin d'effectuer les actions demandées. Au bout de 10 essais infructueux, le corrigé vous est proposé.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013,M]xa/cP_Aiy(*25qe78jBpzHv1)0f:gS.C3W9moàérhdtsl4 [n6=uTb050T0s0U0f0l0W0V0Y0h0W0f0V0V0$010U0l0x010406050V0%0N0N0f0R0m040H0O0W0%0}0O0!050g1416181a120x041j1q051t0g1t1v1q120T0l0A0=0@0_0{0S0l0G0S0W1J0S0U10050-0)0W0s1E0^0`011I1K1M1K0U1S1U1Q0U0)0O0T1a1R0R1r0U0S0=1d0V0x0f0!0{0p011W1G010E0/0s0!0f0N0s1Q1{1}221Y251U282a100a0Y0i0R0O0x0O0V0l1g0!0Y0+1_0R0R0s0h2v1j2d0!1r0g1@2I0U1=1;1?0T2f0{1M0!272s1Q1B1D0?1X2S0l2U0!1.1C1Q0x2B1r2G2I2:131|2w2!232)0R170W100Y0B2F2@112?2e2_1Y2{2}2 0p321}342G2R01390f2~040Y0K3d2H123g370{3j3l0Y0X3p3f2@3h3v2 0q3z3r3B3t3i0O2|3k2 0#3G352^1F383L3a3m0t3Q3s3T3u3V3N3m0u3Z3I3#3K3M3w0M3+363-3D040B0D3=3S2#3.3W0B311k333H3?3~3^0B3c433e453}2`3%3l0B3o4b3q3R3C4g100B3y4k3A464f3/4p3F4s4d4n4w3_3P4z4m3J483Y4F3!474o3_3*4K3,4M4C0B3;4Q4u3U4C0p3{4W4e4Y3W0p422:4A4H4N0p4a4,4G3@4/4j2=1w2.1j2Y2L0T2P3h0h1.2b1r4~1u4|4`2=530+2/4R230h0B10030Y0J0R0Q0s0R0Y0%2U0Y1M0V0U1V0A0l2y2)165o5u0l5w0s0j0k3|3C105v5x5J3z0Y4?3~0O100$5R5T230 040Z0d3G4-3-5h5j5l5n5p5u0f5F5H2x0s0;5C0)2B0;270}5p0;530N2-5G0Y5 2B300D670U300K0Y0n2%0?0%0;0U0O6k5u5_5^0%0e0C5L3J5,045k5C0N5E5O5I0w6v3@5N5G5P6F4s5S4L235V045X6M5Z1Y5#0Z3z6U0{0N0l4p4#2=6O6V100b5Y6*6!6$3_4+336Z015#6-6T6/016#4p4;6@6}6`6.5f1Y6 3_4_72760{5#5(4z5*3~6x5k5m5o5q0@5?5x0=2%0r0%1}5P6m6m0Y7t0l1_0!607D0Y0q6b0E0O667o0A3k0s0%5q010(0O6m016G47100h7s7u7D5I7x0O754X0{6Q6S2:6N7c6_106X4s6^0V20047S7U5V6Y73107f7:6^6Q0o7+4%6:107H5)6^0!100G2B0,2%0G0V893h7.8o3J6W84446^7j0Y0k0v6n5x5q140h0h5_2t0A0s2a7F1U0;7N1U7Q0;010z0s0W0W5V6c0Y010L3L0W0T210P0Y8i0s8k0!8m7X2`8h8j0}8:8n7_6}6Q0I817=8g040f0x0x270T907,7?040n998a017{108T8V8X7W8|7=5#6u4$5M048-8/8;9n9a8~9e9s94960!989x9f5#9d9G3h9h7}8$0R8(9m6)9o109q4,067h8?040V3k1f0f2v8{858}5W8r3-6W9A3J9M010w0v0R9R7b9a746|7=9?0N0D9E0K9{3e6^7e8=1Y8x0c2*250s0y0Y9#1e0-9)0Y0f252w7t009k1V537D0l275t0T0Q0V3%660Faa0{8x0Z9@1h8A7Q010b8!1*aP01ad9E2b8u4c8w5i6y6g5t1|625/5q5B6n8J8W1V6D9V8v6}92aj9%9)9;9/7@a|3~786(9|9H839.5U9-9 9a9?0waL6n9`aG3i10a_al0l1h9*b33h9:9K3J786?a78204aX2H7;9yb89+a07|011*bga^9$bkbma 6P108 br6H939597bN6+9cbW0{9?aU0+a62Ha89U3Q0g5c0s2I2-b/4}1C4 2L2N2J1-1/2L0f1Tb=0g4~12c20,0.0:04.
Recherche d'indice - non guidé

Il s'agit de déterminer l'indice de la plus petite valeur dans une liste non-vide.

Indice du minimum d'un tableau

Recherche de valeur - non guidé

La recherche de la valeur maximale dans une liste. Classique.

Maximum

Modification d'un tableau - non guidé

On se donne un tableau, une valeur cible et une valeur de remplacement et il faut parcourir le tableau et remplacer la cible par la nouvelle valeur.

Remplacer une valeur