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

不言
Libérer: 2018-10-11 14:20:53
avant
4573 Les gens l'ont consulté

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]
}
Copier après la connexion

ou comme celui-ci :

d={
'a':{1,2,3},
'b':{4,5}
}
Copier après la connexion

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)
Copier après la connexion

Résultat :

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

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!