You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

205 lines
3.9 KiB

  1. Chapitre 6 - Listes
  2. ===================
  3. Définition
  4. ----------
  5. Une liste est une *suite ordonnée* d'éléments.
  6. Créer une liste
  7. ---------------
  8. Avec des crochets: ``[``, ``]``, et les éléments séparés par des virgules::
  9. liste_vide = []
  10. trois_entiers = [1, 2, 3]
  11. Listes hétérogènes
  12. ------------------
  13. On peut mettre des types différents dans la même liste::
  14. ma_liste = [True, 2, "trois"]
  15. On peut aussi mettre des listes dans des listes::
  16. liste_de_listes = [[1, 2], ["Germaine", "Gertrude"]]
  17. Connaître la taille d'une liste
  18. -------------------------------
  19. Avec ``len()`` - encore une fonction native::
  20. liste_vide = []
  21. taille = len(liste_vide)
  22. print(taille)
  23. # affiche: 0
  24. trois_entiers = [1, 2, 3]
  25. taille = len(trois_entiers)
  26. print(taille)
  27. # affiche: 3
  28. Concaténation de listes
  29. -----------------------
  30. Avec ``+``::
  31. prénoms = ["Alice", "Bob"]
  32. prénoms += ["Charlie", "Eve"]
  33. print(prénoms)
  34. # affiche: ['Alice', 'Bob', "Charlie", 'Eve']
  35. On ne peut concaténer des listes que avec d'autres listes::
  36. scores = [1, 2, 3]
  37. scores += 4
  38. # erreur
  39. scores += [4]
  40. print(scores)
  41. # affiche: [1,2,3,4]
  42. Test d'appartenance
  43. -------------------
  44. Avec ``in``::
  45. prénoms = ["Alice", "Bob"]
  46. print("Alice" in prénoms)
  47. # affiche: True
  48. prénoms = ["Alice", "Bob"]
  49. print("Charlie" in prénoms)
  50. # affiche: False
  51. Itérer sur les éléments d'une liste
  52. ------------------------------------
  53. Avec les mots-clés ``for`` et `` in``::
  54. prénoms = ["Alice", "Bob", "Charlie"]
  55. for prénom in prénoms:
  56. # Chaque élément de la liste est assigné tour à tour
  57. # à la variable 'prénom"
  58. print("Bonjour", prénom)
  59. .. code-block:: text
  60. Bonjour Alice
  61. Bonjour Bob
  62. Bonjour Charlie
  63. Continue
  64. --------
  65. On peut interrompre l'exécution du bloc courant avec le mot-clé
  66. ``continue``::
  67. prénoms = ["Alice", "Bob", "Charlie"]
  68. for prénom in prénoms:
  69. if prénom == "Bob":
  70. continue
  71. print("Bonjour", prénom)
  72. .. code-block:: text
  73. Bonjour Alice
  74. Bonjour Charlie
  75. Indéxer une liste
  76. ------------------
  77. * Avec ``[]`` et un entier
  78. * Les index valides vont de 0 à ``n-1`` où ``n`` est la
  79. taille de la liste::
  80. fruits = ["pomme", "orange", "poire"]
  81. print(fruits[0])
  82. # affiche: "pomme"
  83. print(fruits[1])
  84. # affiche: "orange"
  85. print(list[2])
  86. # affiche: "poire"
  87. fruits[3]
  88. # erreur: IndexError
  89. Modifier une liste
  90. -------------------
  91. Encore une assignation::
  92. fruits = ["pomme", "orange", "poire"]
  93. fruits[0] = "abricot"
  94. print(fruits)
  95. # affiche: ["abricot", "orange", "poire"]
  96. Les strings sont aussi des listes (presque)
  97. --------------------------------------------
  98. On peut itérer sur les caractères d'une string::
  99. for c in "vache":
  100. print(c)
  101. .. code-block: console
  102. v
  103. a
  104. c
  105. h
  106. e
  107. On peut tester si un caractère est présent::
  108. print("e" in "vache")
  109. # affiche: True
  110. print(x" in "vache")
  111. # affiche: False
  112. Mais on ne peut pas modifier une string::
  113. prénom = "Charlotte"
  114. l = prénom[0]
  115. print(l)
  116. # affiche: "C"
  117. l = prénom[3]
  118. print(l)
  119. # affiche: "r"
  120. prénom[0] = "X"
  121. # erreur: TypeError
  122. Falsy et truthy
  123. ----------------
  124. En réalité on peut mettre autre chose qu'une comparaison ou une variable booléenne après le if.
  125. Si on met une liste vide, ``if`` se comportera comme si on avait mis une valeur fausse, et si
  126. la liste n'est pas vide , ``if`` se comportera comme si on avait mis une valeur vraie.::
  127. ma_liste = [1, 2, 3]
  128. if ma_liste:
  129. print("ma_liste n'est pas vide")
  130. # affiche: ma_liste n'est pas vide
  131. mon_autre_liste = []
  132. if not mon_autre_liste:
  133. print("mon_autre_liste est vide")
  134. # affiche: mon_autre_liste est vide
  135. On dit que les listes vides sont *Falsy* et les listes non-vides *Truthy*