gpt4 book ai didi

列表列表的python计数器?

转载 作者:行者123 更新时间:2023-11-28 20:35:18 26 4
gpt4 key购买 nike

我想通过调用 collections.Counter 来计算列表中项目的频率。诀窍是我的列表本身包含列表:

给定:

[[1,"a"], [2,"b"], [3,"c"], [1,"a"], [1,"a"]

制作:

{
([1,"a"], 3),
([2,"b"], 1),
([3,"c"], 1)
}

当我使用我的列表实例化 Counter 时,我得到 TypeError: unhashable type: 'list'.

Counter 可以做我想做的事吗?是否有其他一些(相当有效的)方法可以做到这一点?

最佳答案

Counter 返回一个哈希表。为此, key (正在计算的内容)必须是可散列的。不幸的是,列表不可散列,这就是您看到错误的原因。

一种解决方法是将每个内部列表转换为一个元组

from collections import Counter

x = [[1,"a"], [2,"b"], [3,"c"], [1,"a"], [1,"a"]]
Counter(tuple(item) for item in x)
# returns:
Counter({(1, 'a'): 3, (2, 'b'): 1, (3, 'c'): 1})

关于列表列表的python计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46859770/

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