首页 > 解决方案 > 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 个元素)。

标签: pythonpython-3.xlist

解决方案


使用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})

推荐阅读