gpt4 book ai didi

python - 两个列表中的公共(public)元素,其中元素相同

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:33 25 4
gpt4 key购买 nike

我有两个列表,如下所示:

a=['not','not','not','not']
b=['not','not']

我必须找到包含上面两个列表交集的列表的len,结果是:

intersection=['not','not']
len(intersection)
2

现在的问题是我尝试过 filter(lambda x: x in a,b)filter (lambda x: x in b,a) 但是当两个列表中的一个比另一个长,我没有得到交集,而只是进行成员资格检查。在上面的例子中,由于 a 的所有成员都在 b 中,所以我得到 len 的公共(public)元素为 4;我想要的是交集,即 len 2。使用 set().intersection(set()) 会创建一个集合,这不是我想要的,因为所有元素都是相同的。您能为我建议任何有值(value)且紧凑的解决方案来解决该问题吗?

最佳答案

如果您不介意使用 collections.Counter ,那么你可以有一个像这样的解决方案

>>> import collections
>>> a=['not','not','not','not']
>>> b=['not','not']

>>> c1 = collections.Counter(a)
>>> c2 = collections.Counter(b)

然后按“not”索引

>>> c1['not'] + c2['not']
6

对于交叉路口,您需要

>>> (c1 & c2) ['not']
2

关于python - 两个列表中的公共(public)元素,其中元素相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17762500/

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