python - 我想计算每个一起出现的元组
问题描述
我是新的顶级 python 并希望您的支持进行以下操作。我有如下列表:
item = [[8, 28], [8, 33], [8, 38], [8, 43], [13, 18], [13, 23],
[13, 28], [13, 33], [13, 38], [13, 43], [18, 23], [18, 28],
[18, 33], [18, 38], [18, 43], [23, 28], [23, 33], [23, 38],
[23, 43], [28, 33], [28, 38], [28, 43], [33, 38], [33, 43],
[38, 43], [4, 9], [4, 14], [4, 19], [4, 24], [4, 29], [4, 34],
[4, 39], [4, 44], [9, 14], [9, 19], [9, 24], [9, 29], [25, 30],
[25, 35], [25, 40], [25, 45], [30, 35], [30, 40], [30, 45]]
我想获得每个元组一起发生的计数,我尝试应用此代码:
collection.Counter(item)
发生以下错误:
count_elements(self, iterable)
TypeError: unhashable type: 'list'
解决方案
您有一个列表列表,您可以将列表转换为元组,然后collection.Counter(item)
可以工作:
from collections import Counter
item_lists = [[8, 28], [8, 33], [8, 38], [8, 43], [13, 18], [13, 23], [13, 28],
[13, 33], [13, 38], [13, 43], [18, 23], [18, 28], [18, 33],
[18, 38], [18, 43], [23, 28], [23, 33], [23, 38], [23, 43],
[28, 33], [28, 38], [28, 43], [33, 38], [33, 43], [38, 43],
[4, 9], [4, 14], [4, 19], [4, 24], [4, 29], [4, 34], [4, 39],
[4, 44], [9, 14], [9, 19], [9, 24], [9, 29], [25, 30], [25, 35],
[25, 40], [25, 45], [30, 35], [30, 40], [30, 45]]
item_tuples = [tuple(l) for l in item_lists]
print(Counter(item_tuples))
输出:
Counter({(8, 28): 1, (8, 33): 1, (8, 38): 1, (8, 43): 1, (13, 18): 1, (13, 23): 1, (13, 28): 1, (13, 33): 1, (13, 38): 1, (13, 43): 1, (18, 23): 1, (18, 28): 1, (18, 33): 1, (18, 38): 1, (18, 43): 1,(23, 28): 1, (23, 33): 1, (23, 38): 1, (23, 43): 1, (28, 33): 1, (28, 38): 1, (28, 43): 1, (33, 38): 1, (33, 43): 1, (38, 43): 1, (4, 9): 1, (4, 14):1, (4, 19): 1, (4, 24): 1, (4, 29): 1, (4, 34): 1, (4, 39): 1, (4, 44): 1, (9, 14): 1, (9, 19): 1, (9, 24): 1, (9, 29): 1, (25, 30): 1, (25, 35): 1, (25, 40): 1, (25, 45): 1, (30, 35): 1, (30, 40): 1, (30, 45): 1})
注意:目前,您的所有项目似乎只在原始列表中存在一次。
推荐阅读
- office365 - 删除 Microsoft 365 E5 开发人员订阅
- powershell - 尝试 Get-Aduser 但仅当电子邮件与属性中的主 SMTP 地址匹配时才想获取用户
- bash - 重命名 bash 中的多个文件 (1->11,2->12)
- join - AWS Timestream 是否支持 As-Of Joins?
- powershell - 如何在 Powershell 中复制文件而不保存现有文件
- python - 将数据从一个工作表复制到另一个工作簿中的指定工作表
- flutter - 颤振滑动识别器仅在垂直方向上
- timestamp - 使用 Intersystems 处理不同的时区
- c++ - 指向 const 对象的指针的合法定义是什么?
- apache-nifi - 对于管道任务,哪一个是最好的 apache nifi 或 Camunda