Maison  >  Article  >  développement back-end  >  Comment implémenter un dictionnaire multi-valeurs à une clé en Python

Comment implémenter un dictionnaire multi-valeurs à une clé en Python

不言
不言avant
2018-10-11 14:20:534574parcourir

Le contenu de cet article concerne la mise en œuvre d'un dictionnaire multi-valeurs à une clé en Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Exigences

Nous voulons un mot qui puisse mapper les clés à plusieurs valeurs (le soi-disant dictionnaire multi-valeurs à une clé)

2. Solution

Un dictionnaire est un conteneur associatif, avec chaque clé mappée à une valeur distincte. Si vous souhaitez qu'une clé soit mappée sur plusieurs valeurs, vous devez enregistrer ces multiples valeurs dans un autre conteneur (liste ou ensemble).

Vous pouvez créer un dictionnaire comme celui-ci :

d={
‘a’:[1,2,3],
'b':[4,5]
}

ou comme celui-ci :

d={
'a':{1,2,3},
'b':{4,5}
}

Que vous souhaitiez utiliser une liste ou un ensemble dépend entièrement de la intention de votre candidature. Si vous souhaitez conserver l'ordre dans lequel les éléments ont été insérés, utilisez une liste. Si vous souhaitez éliminer les éléments en double (et ne vous souciez pas de leur ordre), utilisez un ensemble.

Afin de créer facilement un tel dictionnaire, vous pouvez utiliser la classe defaultdict dans le module collections. Une fonctionnalité de defaultdict est qu'il initialise automatiquement la première valeur, vous n'avez donc qu'à vous concentrer sur l'ajout d'éléments :

from collections import defaultdict
d=defaultdict(list)
d['a'].append(1)
d['a'].append(2)
d['b'].append(4)
print(d)
d=defaultdict(set)
d['a'].add(1)
d['a'].add(2)
d['b'].add(4)
print(d)

Résultat :

defaultdict(<class &#39;list&#39;>, {'a': [1, 2], 'b': [4]})
defaultdict(<class &#39;set&#39;>, {'a': {1, 2}, 'b': {4}})

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer