dict.keys()

Renvoie une vue des clés du dictionnaire, qui reflète toujours son contenu actuel.

Renvoie
Un objet vue dict_keys.
Modifie l’original
Non
Sur cette page

Exemple

#
Python
modules = {"html": 11, "css": 9, "python": 12}

keys = modules.keys()
print(keys)
print(list(keys))

modules["react"] = 16
print(len(keys), "react" in keys)
Résultatrésultat enregistré, vous pouvez le vérifier
dict_keys(['html', 'css', 'python'])
['html', 'css', 'python']
4 True

Définition et utilisation

#

La méthode keys() renvoie un objet vue contenant les clés du dictionnaire dans leur ordre d’insertion. Cette vue n’est pas une copie : quand le dictionnaire change, elle affiche immédiatement les nouvelles clés.

Vous pouvez itérer sur cette vue, vérifier sa longueur avec len() et tester l’appartenance avec in. Écrire for key in dictionnaire ou key in dictionnaire fait la même chose sans appeler keys(), donc on omet généralement la méthode dans ces cas.

Une vue de clés se comporte comme un ensemble et prend en charge les opérateurs &, | et -. Cela permet de trouver rapidement les clés communes à deux dictionnaires, ou celles qui manquent dans l’un d’eux. Quand vous avez besoin d’une liste, par exemple pour lire une clé par son indice, convertissez la vue avec list().

Syntaxe

#
Syntaxe
dictionnaire.keys()

Plus d’exemples

#
Comparaison des clés de deux dictionnaires
Python
defaults = {"theme": "dark", "lang": "fr", "sound": True}
user = {"lang": "en", "avatar": "renard.png"}

print(sorted(defaults.keys() & user.keys()))
print(sorted(defaults.keys() - user.keys()))
print(sorted(user.keys() - defaults.keys()))
Résultatrésultat enregistré, vous pouvez le vérifier
['lang']
['sound', 'theme']
['avatar']
Supprimer des clés dans une boucle
Python
scores = {"Léa": 92, "Lucas": 0, "Emma": 0}

try:
    for name in scores.keys():
        if scores[name] == 0:
            del scores[name]
except RuntimeError as error:
    print("Erreur :", error)

for name in list(scores.keys()):
    if scores[name] == 0:
        del scores[name]

print(scores)
Résultatrésultat enregistré, vous pouvez le vérifier
Erreur : dictionary changed size during iteration
{'Léa': 92}

Bonnes pratiques

#
  • Pour vérifier une clé, écrivez if key in dictionnaire: sans .keys(). L’effet est le même, et c’est plus court à lire.
  • N’ajoutez et ne supprimez pas de clés pendant une boucle sur un dictionnaire. Parcourez une copie avec list(dictionnaire), ou construisez un nouveau dictionnaire avec une compréhension de dictionnaire.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.