Recibo un diccionario como entrada y deseo devolver una lista de claves para las cuales los valores del diccionario son únicos en el alcance de ese diccionario.Python: encontrar claves con valores únicos en un diccionario?
Lo aclararé con un ejemplo. Di mi entrada es un diccionario, construido de la siguiente manera:
a = dict()
a['cat'] = 1
a['fish'] = 1
a['dog'] = 2 # <-- unique
a['bat'] = 3
a['aardvark'] = 3
a['snake'] = 4 # <-- unique
a['wallaby'] = 5
a['badger'] = 5
El resultado que espero es ['dog', 'snake']
.
Existen formas obvias de fuerza bruta para lograr esto, sin embargo, me pregunto si hay una forma clara de Python para hacer el trabajo.
Sería más lindo con collections.defaultdict (int), IMO –
sí, pero lo dejaría para que la gente sepa lo que solíamos hacer cuando no había defaultdicts –
WASTEFUL: does 'for k, v in a.iteritems (): 'pero no usa k !!! –