-3

我实现了一个数据挖掘算法。我最小的对象是一个集合。一个集合可能包含单个项目或多个项目(Itemset)。我需要将字典中此类集合的出现次数计算为:

Dict={set([<some items>] : count)}

由于以下原因,我需要这样的数据类型:

  1. 不考虑集合中项目的顺序(item1、item2、item3 与 item2、item3、item1 等相同...)
  2. 将集合添加到字典将避免重复键。
  3. 将计数与项集一起存储在相同的数据结构中。

您能否建议一种在 python 中实现这一目标的最简单方法。

4

1 回答 1

2

您可以使用Counterwithfrozenset作为键:

from collections import Counter

items = [
    [1, 2, 3],
    [1, 2],
    [3, 2, 1]
]

c = Counter(frozenset(x) for x in items)
print(c) # Counter({frozenset([1, 2, 3]): 2, frozenset([1, 2]): 1})
于 2016-05-18T09:54:31.460 回答