您不能選擇超過 %s 個話題 話題必須以字母或數字為開頭,可包含連接號 ('-') 且最長為 35 個字
此存儲庫已封存,您能瀏覽檔案及複製此存儲庫,但不能推送、建立問題及拉取請求。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. Dictionnaires
  2. ==============
  3. Définition
  4. ----------
  5. Un dictionaire est une _association_ entre des clés et des valeurs.
  6. * Les clés sont uniques
  7. * Les valeurs sont arbitraires
  8. Création de dictionnaires
  9. -------------------------
  10. Avec des accolades: ``{``, ``}`` ::
  11. dictionaire_vide = {}
  12. une_clé_une_valeur = {"a": 42}
  13. deux_clés_deux_valeurs = {"a": 42, "b": 53}
  14. Les clés sont uniques::
  15. {"a": 42, "a": 53} == {"a": 53}
  16. Note: tous les dictionnaires sont truthy, sauf les dictionnaires vides.
  17. Accès aux valeurs
  18. ------------------
  19. Avec ``[]``, comme pour les listes, mais avec une *clé* à la place d'un *index*::
  20. scores = {"john": 10, "bob": 42}
  21. print(scores["john"])
  22. # affiche: 10
  23. print(scores["bob"])
  24. # affiche: 42
  25. print(scores["charlie"])
  26. # erreur: KeyError
  27. Test d'appartenance
  28. ---------------------
  29. Avec ``in``, comme le listes::
  30. scores = {"john": 10, "bob": 42}
  31. print("charlie" in scores)
  32. # affiche: False
  33. Modifier la valeur d'une clé
  34. -----------------------------
  35. Comme pour les listes, avec une assignation::
  36. scores = {"john": 10, "bob": 42}
  37. scores["john"] = 20
  38. print(scores)
  39. # affiche: {"john": 20, "bob": 42}
  40. Créer une nouvelle clé
  41. -----------------------
  42. Même mécanisme que pour la modification des clés existantes::
  43. scores = {"john": 10, "bob": 42}
  44. scores["charlie"] = 30
  45. print(scores)
  46. # affiche: {"john": 20, "bob": 42, "charlie": 30}
  47. *rappel*: ceci ne fonctionne pas avec les listes: on ne peut
  48. pas "créer" de nouveaux éléments dans la liste juste
  49. avec un index::
  50. ma_liste = ["a", "b"]
  51. ma_liste[1] = "c"
  52. print(ma_liste)
  53. # affiche: ["a", "c"]
  54. ma_liste[3] = "d"
  55. # erreur: IndexError
  56. Itérer sur les clés
  57. -------------------
  58. Avec ``for ... in ...``, comme pour les listes::
  59. scores = {"john": 10, "bob": 42}
  60. for nom in scores:
  61. # `nom` est assigné à "john" puis "bob"
  62. score_associé_au_nom = scores[nom]
  63. # score_associé_au_nom est assigné à '10' puis '42'
  64. print(nom, score_associé_au_nom)
  65. .. code-block::
  66. john 10
  67. bob 42
  68. del
  69. ---
  70. Détruire une clé
  71. +++++++++++++++++
  72. Avec ``del`` - un nouveau mot-clé::
  73. scores = {"john": 10, "bob": 42}
  74. del scores["bob"]
  75. print(scores)
  76. # affiche: {"john": 10}
  77. Détruire un élément d'une liste
  78. ++++++++++++++++++++++++++++++++
  79. Aussi avec ``del``::
  80. fruits = ["pomme", "banane", "poire"]
  81. del fruits[1]
  82. print(fruits)
  83. # affiche: ["pomme", "poire"]
  84. Détruire une variable
  85. +++++++++++++++++++++
  86. Encore et toujours ``del``::
  87. mon_entier = 42
  88. mon_entier += 3
  89. print(mon_entier)
  90. # affiche: 45
  91. del mon_entier
  92. mon_entier += 1
  93. # erreur: NameError