łączenie zestawów, które mają nawet jeden wspólny element [duplikat]
Możliwy duplikat:
Python: proste łączenie list na podstawie przecięć
Próbuję klasyfikować obiekty. Każdy obiekt jest identyfikowany przez unikalną właściwość identyfikatora o nazwieid
. Tak więc moja logika klasyfikacji wygląda tak. Najpierw przygotowuję listę obiektów, a następnie funkcja klasyfikacji pobiera 2 obiekty naraz i zwraca afrozenset
zawierające ichid
. Więc jeśliobject1
iobject5
są w tej samej kategorii afrozenset(id1,id5)
jest zwracany. Teraz dodaję te frozensety do zestawu, więc w końcu mam taki zestaw
matched_set=(
frozenset(id1,id2),
frozenset(id9,id3),
frozenset(id9,id2),
frozenset(id24,id22),
frozenset(id1,id23),
frozenset(id25,id24),
frozenset(id30,id24)
)
Teraz, ponieważ obiekty zid1
iid2
są w tej samej kategorii, obiekty zid9
iid3
są w tej samej kategorii, obiekty zid9
iid2
są w tej samej kategorii, obiekty zid1,id2,id3,id9
powinien być w tej samej kategorii. Powinienem mieć taki zestawset(id1,id2,id3,id9)
Czy ktoś może dostarczyć algorytm, aby to zrobić? Dzięki