Dictionnaire avec plusieurs valeurs en Python

Hemank Mehtani 30 janvier 2023
  1. Utiliser une fonction définie par l’utilisateur pour ajouter plusieurs valeurs à une clé dans un dictionnaire
  2. Utilisez le module defaultdict pour ajouter plusieurs valeurs à une clé dans un dictionnaire
  3. Utilisez la méthode setdefault() pour ajouter plusieurs valeurs à une clé spécifique dans un dictionnaire
Dictionnaire avec plusieurs valeurs en Python

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