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.
 
 
 
 
 
 

188 lines
3.5 KiB

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