plusieurs clés en python dictionnaire, est-elle possible?
J'aimerais construire un dictionnaire en python, dans lequel les différentes touches reportez-vous à la même élément. J'ai ce dictionnaire:
persons = {"George":'G.MacDonald', "Luke":'G.MacDonald', "Larry":'G.MacDonald'}
la clé se réfèrent toutes à une même chaîne, mais les cordes sont différentes emplacement de mémoire à l'intérieur du programme, je voudrais faire un dictionnaire dans lequel tous ces touches, reportez-vous à la même élément, est-ce possible?
Êtes-vous en disant à chaque fois que vous créez une chaîne, il fera appel à un en mémoire?
De toute façon quand vous construire le dictionnaire, ils sont tous exactement la même chaîne. L'application est-ce pour?
Peut-être un multi-touches dictionnaire de la mise en œuvre pourrait résoudre ce problème: stackoverflow.com/questions/11449232/multiple-keys-per-value/...
De toute façon quand vous construire le dictionnaire, ils sont tous exactement la même chaîne. L'application est-ce pour?
foo = 'G.MacDonald'; persons = {'George': foo, 'Luke': foo, 'Larry': foo}
Peut-être un multi-touches dictionnaire de la mise en œuvre pourrait résoudre ce problème: stackoverflow.com/questions/11449232/multiple-keys-per-value/...
OriginalL'auteur FEderico SOmaschini | 2013-04-21
Vous devez vous connecter pour publier un commentaire.
Vous pourriez faire quelque chose comme:
Cela transforme votre dictionnaire dans un dictionnaire où l'égalité des valeurs de toute nature(mais comparable) sont uniques. Si vos valeurs ne sont pas comparables(mais sont hashable) vous pouvez utiliser un temporaire
dict
:OriginalL'auteur Bakuriu
Si vous arrive d'être à l'aide de python 3,
sys.intern
offre une solution élégante:En Python 2.7, vous pouvez faire à peu près la même chose avec une étape supplémentaire:
En 2.x (< 2.7), vous pouvez écrire
interned = dict( (v, v) for … )
à la place.OriginalL'auteur Marcelo Cantos