python - Python3 - 计算两个列表之间每对的出现次数
问题描述
我有两个列表,例如:
lst1 = [0, 2, 4, 5, 5, 6, 5, 2]
lst2 = [1, 3, 7, 9, 9, 11, 8, 3]
我想计算,对于同一索引处的元素,它们一起出现了多少次,所以结果应该类似于字典:
{ [0, 1] : 1,
[2, 3] : 2,
[4, 7] : 1,
[5, 9] : 2,
[6, 11] : 1,
[5, 8] : 1 }
有没有办法在不循环的情况下做到这一点,可以很好地扩展?我需要为非常大的列表运行它(每个列表大约有 20k 个元素)。
解决方案
使用collections.Counter
:
Counter(zip(lst1, lst2))
输出:
Counter({(0, 1): 1, (2, 3): 2, (4, 7): 1, (5, 8): 1, (5, 9): 2, (6, 11): 1})
推荐阅读
- java - 如何使用android studio访问firebase中的子节点
- javascript - 如何在 react-select 中将 props 传递给自定义组件
- python - 如何编写具有三个条件的 lambda 函数
- php - 我想用事件 phpunit laravel 在存储库中测试一个方法
- javascript - 如何编写以下数组格式代码的更简洁的代码?
- javascript - Codeigniter 下拉菜单将错误的值传递给控制器
- jasmine - Jasmine:优先测试文件执行顺序
- wicket - Wicket LambdaModel 和 NumberTextField 无法解析类型
- bootstrap-4 - 在 Symfony 4 中使用带有 Webpack Encore 的引导程序
- visual-studio-code - 使用“react-app”在 Visual Studio Code 中显示创建反应应用程序的 lint 错误