【发布时间】:2012-08-21 21:48:01
【问题描述】:
我正在尝试对对象进行分类。每个对象都由一个名为id 的唯一标识符属性标识。所以我的分类逻辑是这样的。首先我准备一个对象列表,然后分类函数一次获取 2 个对象并返回一个包含它们的 id 的 frozenset。因此,如果 object1 和 object5 属于同一类别,则返回 frozenset(id1,id5)。现在我不断将这些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)
有人可以提供这样做的算法吗?
谢谢
【问题讨论】:
-
链接的问题包含几个可行的解决方案。
-
@DSM 非常感谢您指出这一点