gpt4 book ai didi

python - 两个计数器的交集

转载 作者:太空狗 更新时间:2023-10-29 22:12:26 24 4
gpt4 key购买 nike

我正在尝试查找两个列表之间的共享元素(以及共享的出现次数)。例如,这两个列表的交集:

a = [1, 1, 2, 3, 4, 5, 6, 7, 8, 1]
b = [1, 1, 3, 5, 7, 9]

应该返回 Counter({1: 2, 3: 1, 5: 1, 7: 1}) 或类似的东西,例如{1: 2, 3: 1, 5: 1, 7: 1}[1, 1, 3, 5, 7](列表的顺序不无关紧要)。

我已经有了一个可行的方法:

cnts_a = Counter(a)
cnts_b = Counter(b)
cnts_a_b = Counter() # counter for the shared values
for key in set(cnts_a).intersection(cnts_b):
cnts_a_b[key] = min(cnts_a[key], cnts_b[key])

但也许有更简单(或更快)的方法?

最佳答案

使用 & 作为交集:

>>> Counter(a) & Counter(b)
Counter({1: 2, 3: 1, 5: 1, 7: 1})

From docs :

Intersection(&) and union(|) return the minimum and maximum of corresponding counts.

关于python - 两个计数器的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44012479/

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