0

我从项目列表中列出了 n 长度的可能组合列表,现在我想创建一个字典,其中每个键都是可能组合列表中的项目之一,所以我可以开始计算多少次每个组合都出现在一组观察中(编程关联规则引擎的早期阶段)。这是我所拥有的:

import itertools
stuff=(1,2,3,4)
n=1
combs=list()
while n<=len(stuff):
    combs.append(list(itertools.combinations(stuff,n)))
    n = n+1
print combs
viewers={'Jim':(1,3,4), 'Bob':(1,2,4), 'Jerry':(1,4), 'Ben':(2), 'Sal':(1,4)}  
showcount={}
for list in combs:
    for item in list:
        showcount["%s",%(item)]=0
print viewers
print showcount

如何让该项目显示为字典中的键?例如,我希望组合 '(1,2,4):0' 成为键值对,这样我以后可以计算 '(1,2,4)' 出现的次数。我对 Python 很陌生,但我确实四处寻找答案,但找不到。抱歉,如果这已得到回答,我只是找不到它。

4

1 回答 1

7

您可以使用元组作为键:

mydict = { (1, 2, 4): 0 }

如果你想对事物进行计数,请看collections.Counter,它使计数变得微不足道,无需将键初始化为 0:

counts = collections.Counter()
counts[(1, 2, 4)] += 1
于 2012-10-04T17:47:24.133 回答