Dictionnaire Python fromkeys ()

La méthode fromkeys () crée un nouveau dictionnaire à partir de la séquence d'éléments donnée avec une valeur fournie par l'utilisateur.

La syntaxe de la fromkeys()méthode est:

 dictionary.fromkeys (séquence (, valeur))

Paramètres fromkeys ()

fromkeys() La méthode prend deux paramètres:

  • séquence - séquence d'éléments à utiliser comme clés pour le nouveau dictionnaire
  • value (facultatif) - valeur qui est définie pour chaque élément du dictionnaire

Valeur renvoyée par fromkeys ()

fromkeys() renvoie un nouveau dictionnaire avec la séquence d'éléments donnée comme clés du dictionnaire.

Si l'argument valeur est défini, chaque élément du dictionnaire nouvellement créé est défini sur la valeur fournie.

Exemple 1: créer un dictionnaire à partir d'une séquence de clés

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)

Production

 ('a': Aucun, 'u': Aucun, 'o': Aucun, 'e': Aucun, 'i': Aucun) 

Exemple 2: créer un dictionnaire à partir d'une séquence de clés avec une valeur

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)

Production

 ('a': 'voyelle', 'u': 'voyelle', 'o': 'voyelle', 'e': 'voyelle', 'i': 'voyelle') 

Exemple 3: créer un dictionnaire à partir d'une liste d'objets mutables

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = dict.fromkeys(keys, value) print(vowels) # updating the value value.append(2) print(vowels)

Production

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1, 2 ), 'u': (1, 2), 'o': (1, 2), 'e': (1, 2), 'i': (1, 2)) 

Si value est un objet mutable (dont la valeur peut être modifiée) comme une liste, un dictionnaire, etc., lorsque l'objet mutable est modifié, chaque élément de la séquence est également mis à jour.

En effet, chaque élément se voit attribuer une référence au même objet (pointe vers le même objet dans la mémoire).

Pour éviter ce problème, nous utilisons la compréhension du dictionnaire.

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = ( key : list(value) for key in keys ) # you can also use ( key : value(:) for key in keys ) print(vowels) # updating the value value.append(2) print(vowels)

Production

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) 

Ici, pour chaque clé dans les clés, une nouvelle liste de valeur est créée et lui est assignée.

En substance, la valeur n'est pas attribuée à l'élément, mais une nouvelle liste est créée à partir de celui-ci, qui est ensuite affectée à chaque élément du dictionnaire.

Articles intéressants...