Supongo que tengo un conjunto myset
de objetos personalizados que pueden ser iguales aunque sus referencias sean diferentes (a == b and a is not b
). Ahora bien, si yo add(a)
en el conjunto, Python asume correctamente que a in myset and b in myset
aunque solo haya len(myset) == 1
objeto en el conjunto.Python: miembros de acceso de un conjunto
Eso está claro. ¿Pero ahora es posible extraer el valor de a
de alguna manera del conjunto, usando b
solamente? Supongamos que los objetos son mutables y quiero cambiarlos a ambos, habiendo olvidado la referencia directa al a
. Dicho de otra manera, estoy buscando la operación myset[b]
, que devolvería exactamente el miembro a
del conjunto.
Me parece que el tipo set
no puede hacer esto (más rápido que iterar a través de todos sus miembros). Si es así, ¿hay al menos una solución efectiva?
¿Por qué necesita para hacer esto? Si ya tiene 'b', ¿por qué necesita' a', que es igual? –
Ese es un requisito fugly ... –
@KarlKnechtel: el elemento dentro del conjunto se hace referencia desde otro lugar (desde dentro de una estructura profunda) y quiero cambiar su valor. Los objetos son básicamente de tipo vector 2D, y son mutables. – emu