Dictionnaire avec plusieurs valeurs en Python
- Utiliser une fonction définie par l’utilisateur pour ajouter plusieurs valeurs à une clé dans un dictionnaire
-
Utilisez le module
defaultdict
pour ajouter plusieurs valeurs à une clé dans un dictionnaire -
Utilisez la méthode
setdefault()
pour ajouter plusieurs valeurs à une clé spécifique dans un dictionnaire
Un dictionnaire en Python constitue un groupe d’éléments sous forme de paires clé-valeur. Habituellement, nous avons des valeurs uniques pour une clé dans un dictionnaire.
Cependant, nous pouvons avoir les valeurs des clés sous forme de collection comme une liste. De cette façon, nous pouvons avoir plusieurs éléments dans le dictionnaire pour une clé spécifique.
Par exemple,
d = {"a": [1, 2], "b": [2, 3], "c": [4, 5]}
print(d)
Production:
{'a': [1, 2], 'b': [2, 3], 'c': [4, 5]}
Ce didacticiel abordera différentes méthodes pour ajouter plusieurs valeurs sous forme de liste dans un dictionnaire en Python.
Utiliser une fonction définie par l’utilisateur pour ajouter plusieurs valeurs à une clé dans un dictionnaire
Nous pouvons créer une fonction pour ajouter des paires clé-valeur dans un dictionnaire, la valeur étant une liste.
Par exemple,
def dict1(sample_dict, key, list_of_values):
if key not in sample_dict:
sample_dict[key] = list()
sample_dict[key].extend(list_of_values)
return sample_dict
word_freq = {
"example": [1, 3, 4, 8, 10],
"for": [3, 10, 15, 7, 9],
"this": [5, 3, 7, 8, 1],
"tutorial": [2, 3, 5, 6, 11],
"python": [10, 3, 9, 8, 12],
}
word_freq = dict1(word_freq, "tutorial", [20, 21, 22])
print(word_freq)
Production:
{'example': [1, 3, 4, 8, 10], 'for': [3, 10, 15, 7, 9], 'this': [5, 3, 7, 8, 1], 'tutorial': [2, 3, 5, 6, 11, 20, 21, 22], 'python': [10, 3, 9, 8, 12]}
Notez que, dans le code ci-dessus, nous avons créé une fonction dict1
avec sample_dict
, key
et list_of_values
comme paramètres au sein de la fonction. La fonction extend()
ajoutera une liste comme valeur d’une clé dans le dictionnaire.
Utilisez le module defaultdict
pour ajouter plusieurs valeurs à une clé dans un dictionnaire
defaultdict
fait partie du module collections. C’est aussi une sous-classe de la classe dict
qui renvoie des objets de type dictionnaire. Pour une clé qui n’existe pas, il donnera une valeur par défaut.
defaultdict
et dict
ont la même fonctionnalité sauf que defaultdict
ne génère jamais de keyerror
.
Nous pouvons l’utiliser pour convertir une collection de tuples en un dictionnaire. Nous allons spécifier la valeur par défaut sous forme de liste. Ainsi, chaque fois que la même clé est rencontrée, elle ajoute la valeur sous forme de liste.
Par exemple,
from collections import defaultdict
s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
d = defaultdict(list)
for k, v in s:
d[k].append(v)
sorted(d.items())
print(d)
Production:
defaultdict(<class 'list'>,
{'rome': [1],
'paris': [2, 4],
'newyork': [3],
'delhi': [1]
})
Utilisez la méthode setdefault()
pour ajouter plusieurs valeurs à une clé spécifique dans un dictionnaire
La méthode setdefault()
est utilisée pour définir les valeurs par défaut de la clé. Lorsque la clé est présente, elle renvoie une valeur. Sinon, il insère la clé avec une valeur par défaut. La valeur par défaut de la clé est aucune.
Nous allons ajouter la liste en tant que valeurs pour les clés en utilisant cette méthode.
Par exemple,
s = [("rome", 1), ("paris", 2), ("newyork", 3), ("paris", 4), ("delhi", 1)]
data_dict = {}
for x in s:
data_dict.setdefault(x[0], []).append(x[1])
print(data_dict)
Production:
{'rome': [1], 'paris': [2, 4], 'newyork': [3], 'delhi': [1]}
Article connexe - Python Dictionary
- Comment vérifier si une clé existe dans un dictionnaire en Python
- Convertir un dictionnaire en liste en Python
- Comment obtenir tous les fichiers d'un répertoire
- Comment trouver la valeur maximale dans le dictionnaire Python
- Comment trier un dictionnaire Python par valeur
- Comment fusionner deux dictionnaires en Python 2 et 3