可能重复:
Python:基于交叉点的简单列表合并
我正在尝试对对象进行分类。每个对象都由一个称为 的唯一标识符属性标识id
。所以我的分类逻辑是这样的。首先我准备一个对象列表,然后分类函数一次获取 2 个对象并返回一个frozenset
包含它们的id
. 因此,如果object1
和object5
属于同一类别,frozenset(id1,id5)
则返回 a。现在我不断将这些frozensets添加到一个集合中,所以最后我有一个这样的集合
matched_set=(
frozenset(id1,id2),
frozenset(id9,id3),
frozenset(id9,id2),
frozenset(id24,id22),
frozenset(id1,id23),
frozenset(id25,id24),
frozenset(id30,id24)
)
现在因为带有id1
和id2
的对象属于同一类别,带有id9
和的对象属于同一类别,带有和id3
的对象属于同一类别,具有和的对象应该属于同一类别。所以我应该有一个这样的集合
有人可以提供一个算法吗?谢谢id9
id2
id1,id2,id3,id9
set(id1,id2,id3,id9)