gpt4 book ai didi

python - 计算字典中特定列表的频率

转载 作者:行者123 更新时间:2023-12-03 00:53:51 24 4
gpt4 key购买 nike

假设我有一本字典:

thisdict = {
"1": ['Vanilla','Chocolate']
"2": ['Vanilla']
"7": ['Chocolate']
"8": ['Chocolate','Vanilla']
}

(注意: key 是 ID 号)

我想查看特定列表出现的频率,而不考虑元素的顺序。所以我希望我的结果是:

['Chocolate','Vanilla'] = 2
['Chocolate'] = 1
['Vanilla'] = 1

我该怎么做?

现在我尝试了,Chief 是字典的名称,我想找到以下值的频率:

track = {}

for key,value in chief.items():
if value not in track:
track[value]=0
else:
track[value]+=1

print(track)

但是列表不可散列,因此它不起作用。

非常感谢您的帮助!

最佳答案

看起来您想以顺序无关紧要的方式计算值。您可以转换为集合,但集合不可散列,这使得转换变得有点困难。您可以使用 frozenset ,它是可散列的,并且允许 ['Chocolate','Vanilla']['Vanilla','Chocolate'] 计数相同:

from collections import Counter

thisdict = {
"1": ['Vanilla','Chocolate'],
"2": ['Vanilla'],
"7": ['Chocolate'],
"8": ['Chocolate','Vanilla']
}

counts = Counter(map(frozenset, thisdict.values()))

counts 将是一个计数器实例,例如:

Counter({frozenset({'Chocolate', 'Vanilla'}): 2,
frozenset({'Vanilla'}): 1,
frozenset({'Chocolate'}): 1})

关于python - 计算字典中特定列表的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59079947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com