【发布时间】:2018-07-24 09:04:45
【问题描述】:
我想有效地对给定列表L1 的元素进行分类。此列表可以任意长,因此我正在寻找一种有效的方法来执行以下操作。
列表L1 包含几个元素[e_1,...,e_N],可以与称为areTheSame(e1,e2) 的通用函数进行比较。如果此函数返回True,则表示两个元素属于同一类别。
最后,我想要另一个列表L2,它又包含不同的列表[LC_1, ..., LC_M]。每个LC 列表都包含来自同一类别的所有元素。
【问题讨论】:
-
我认为你可以用 O(N**2) 时间做到这一点,首先找到唯一的元素,然后在下一个循环中附加相同的类别。
-
如果
areTheSame传递和反射? IE。将每个元素与每个组的任何一个代表进行比较以确保它是否属于该组就足够了吗?
标签: python python-2.7 list categories