gpt4 book ai didi

python - 是否有任何 python 模块可以计算(列表,列表)元组的频率?

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:52 29 4
gpt4 key购买 nike

我有一个元组列表,每个元组都是一对列表。所以我的数据看起来像:

mylist = [(['foo', 'bar'], ['bar', 'bar']),(['bar', 'bar'],['bar', 'bar']),(['foo', 'bar'], ['bar', 'bar'])]

我想做这样的事情:

pprint.pprint(Counter(mylist).mostCommon(1)) # returns {(['foo', 'bar'], ['bar', bar']) : count 2}

然而,当我执行 Counter(mylist) 时,python 会抛出一个错误,“无法散列的类型列表”——就像这个问题一样。 python: unhashable type error

我知道我可以滚动自己的计数器 like here但它肯定会比 Python 慢得多。是否有任何 python 模块可以为我执行此操作?

最佳答案

如果您想按确切内容对列表进行计数,只需将列表转换为元组即可:

Counter((tuple(l1), tuple(l2)) for l1, l2 in mylist).most_common(1)

演示:

>>> from collections import Counter
>>> mylist = [(['foo', 'bar'], ['bar', 'bar']), (['bar', 'bar'], ['bar', 'bar']), (['foo', 'bar'], ['bar', 'bar'])]
>>> Counter((tuple(l1), tuple(l2)) for l1, l2 in mylist).most_common(1)[0]
((('foo', 'bar'), ('bar', 'bar')), 2)

现在您的内容是可散列的并且可以被计数。如果需要,您可以随时将 key 转回列表。

关于python - 是否有任何 python 模块可以计算(列表,列表)元组的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23934075/

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