Tengo un diccionario con una clave (x,y)
, donde (x,y)
significa lo mismo que (y,x)
, ¿Cómo debo hacer esto?Buscar una tupla en un diccionario de python que coincida (x, y) o (y, x)
que puedo hacer:
>>> d = {(1,2): "foo"}
>>> i = d.get(2,1)
>>> if i is None:
... i = d.get((1,2))
...
>>> i
'foo'
¿Hay una mejor manera de hacer esto, por lo que habría d.get((2,1))
coincidir con la clave (1,2)
directamente? idealmente me gustaría insertar, p. (2,1)
y no debe ser distinto de la clave (1,2)
también.
¿Qué sucede si ambos existen? Debe normalizar sus claves, por lo que solo hay una representación para una clave en particular. –
@Glenn Maynard ¿Cómo podría normalizar esto? Obtengo una entrada externa en forma de un par x, y y necesito relacionarla con el mismo valor para la entrada x, y y y, x. – Anonym
Una pregunta muy similar está aquí: http://stackoverflow.com/questions/4368423/python-symmetric-dictionary-where-dab-dba/4370725#4370725 –