fusionar conjuntos que tienen incluso un elemento en común [duplicado]
Posible duplicado:
Python: fusión simple de la lista basada en intersecciones
Estoy tratando de clasificar los objetos. Cada objeto está identificado por una propiedad de identificador único llamadaid
. Así que mi lógica de clasificación es la siguiente. Primero preparo una lista de objetos y luego la función de clasificación toma 2 objetos a la vez y devuelve unfrozenset
conteniendo suid
. Así que siobject1
yobject5
están en la misma categoría afrozenset(id1,id5)
es regresado. Ahora sigo agregando estos frozensets a un set, así que al final tengo un set como este
matched_set=(
frozenset(id1,id2),
frozenset(id9,id3),
frozenset(id9,id2),
frozenset(id24,id22),
frozenset(id1,id23),
frozenset(id25,id24),
frozenset(id30,id24)
)
Ahora porque los objetos conid1
yid2
están en la misma categoría, objetos conid9
yid3
están en la misma categoría, objetos conid9
yid2
están en la misma categoría, objetos conid1,id2,id3,id9
Debería estar en la misma categoría. Así que debería tener un conjunto como esteset(id1,id2,id3,id9)
¿Puede alguien proporcionar un algoritmo para hacerlo? Gracias