Je souhaite dupliquer des valeurs uniques dans un dict. Il ressemble à ceci:Comment un dict unique en valeur?
d = {
"a":1,
"b":2,
"c":2,
"d":3,
"e":4,
"f":5,
"g":1,
"h":2,
"i":2,
"j":1,
"k":1}
Voici ce que je faisais:
# sort and unique the dict values
obj = d.values()
K = []
K = sorted(list(zip(*[(x,K.append(x)) for x in obj if not x in K])[0]
V=[]
for v1 in L:
V.append([k for k, v in obj.iteritems() if v == v1][0])
d_out = dict(zip(K, V))
1. Alors, est-ce le K, V dans un ordre? Aussi, il peut être un peu complexe, quelqu'un peut-il donner une solution simple à un dict par ses valeurs?
2. Ce qui suit peut-il être plus simple?
for v1 in L:
V.append([k for k, v in obj.iteritems() if v == v1][0])
Ce ne fonctionne pas sur mon test:
[V.append([k for k, v in obj.iteritems() if v == v1][0]) for v1 in L]
3. je réalise que je peux utiliser la valeur de clé de swap pour y parvenir (un dict par sa valeur unique), mais je ne idée comment sélectionner la clé en cas d'échange a provoqué un conflit avec cette clé:
dict((value, key) for key, value in my_dict.iteritems())
Je sais que si échanger à nouveau la valeur sera unique, mais , cela écrase juste la clé quand un conflit clé se produit, ne donnant aucune chance de faire une sélection. Je me sens confus pourquoi cela ne donne aucune erreur de conflit clé? Et puis-je faire quelque chose pour sélectionner la clé à côté de la façon laide d'écraser la touche du nouveau dict plus tard?
4. J'ai cherché et trouver des « Aucun » valeurs dict python sont bien discuté, quelqu'un peut me donner un échantillon à quoi il sert et ce qu'elle aura eu un impact dans l'utilisation dict python?
jathanism merci, je pense que vous voulez dire que je dois cocher sur la réponse de quelqu'un au lieu d'ajouter la valeur d'utilité. –