尝试计算最常见值时出现不可哈希类型"list"错误



这是我的字典:

d = {'G': ['R'],
'L': ['H'],
'H': ['H', 'L', 'T', 'M'],
'T': ['R'],
'S': ['M', 'L', 'H'],
'M': ['R']}

我想在这本字典的列表中找到最常用的值。希望获得输出:

['H', 'R']

这是我尝试运行的代码:

values_list = list(d.values())
max(set(values_list), key=values_list.count)

当运行此代码时,我收到错误"unshable-type:'list'"。我想知道是否有一个简单的修复程序来解决我的问题。

尝试:

import collections
import itertools
values = [[x] if isinstance(x, str) else x for x in d.values()]
counter = collections.Counter(itertools.chain.from_iterable(values))
max_value = max(counter.values())  # maximum value
max_keys = [k for k, v in counter.items() if v == max_value] # getting all keys containing the `maximum`
print(max_keys)

计数器:

Counter({'R': 3, 'H': 3, 'L': 2, 'T': 1, 'M': 2})

最大密钥:

['R', 'H']

from functools import reduce
from collections import Counter
values_list = list(d.values())
li = reduce(lambda x,y: x+y,values_list)
counter = Counter(li)
m = max(counter.values())
r = [k for k in counter if counter[k] == m]

r:

['R', 'H']

最新更新