【发布时间】:2020-09-28 06:03:06
【问题描述】:
例如,我得到了一个包含两个值的列表列表,这些值与最常见的值相关。 Lines = 我使用的列表列表:
from collections import Counter
most_freq = Counter(bin for sublist in lines for bin in sublist).most_common(1)[0][0]
遍历列表,它只打印一个结果(我知道这是因为 1).. 我最近在论坛里发现了如下代码:
counts = collections.Counter(lines)
mostCommon = counts.most_common()
print(mostCommon)
但错误是“TypeError: unhashable type: 'list'” 我应该更改什么来打印所有最常用的可用值?
【问题讨论】:
-
您的列表元素是列表,它们不能用作键以便
Counter生成字典。您可以将您的列表更改为tuples,以便Counter接受它们作为键。你能发布一个lines列表的例子吗? -
[['VPS', 'TR'], ['VPS', 'PR'], ['VPS', 'HD'], ['VPS', 'ARI'], [ 'VPS', 'DBS], ....[ZEB,LOA], [ZEB,MON]] 共 32659
-
我不喜欢改成元组,我还必须做其他功能,它总共迭代了 7000 多个文件(这就是我选择 Counter func 的原因)。
-
你想要的输出具体是什么?字符串还是列表?
-
我需要字符串,保存最频繁的 --> 之后我做了一些更改并再次搜索最频繁的字符串