Python: 创建一个以键为集合,以值为计数的字典

Python: Creating a dictionary with key as a set and value as its count

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

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

我需要这样的数据类型,原因如下:

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

能否请您在 python 中提出实现此目的的最简单方法。

您可以使用 Counter with frozenset 作为键:

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})