首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查找列表交集?

如何查找列表交集?
EN

Stack Overflow用户
提问于 2010-09-13 09:30:14
回答 14查看 346.5K关注 0票数 330
代码语言:javascript
复制
a = [1,2,3,4,5]
b = [1,3,5,6]
c = a and b
print c

实际输出:[1,3,5,6]预期输出:[1,3,5]

我们如何在两个列表上实现一个布尔AND操作(列表交集)?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-09-13 09:32:48

如果顺序并不重要,并且您不需要担心重复,那么您可以使用set intersection:

代码语言:javascript
复制
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) & set(b))
[1, 3, 5]
票数 556
EN

Stack Overflow用户

发布于 2015-10-12 00:47:47

对我来说,使用列表理解是非常明显的。不确定性能,但至少事情会留在列表中。

[x for x in a if x in b]

或者“所有在A中的x值,如果X值在B中”。

票数 137
EN

Stack Overflow用户

发布于 2010-09-13 09:36:19

如果您将两个列表中较大的一个转换为一个集合,则可以使用intersection()获得该集合与任何可迭代对象的交集

代码语言:javascript
复制
a = [1,2,3,4,5]
b = [1,3,5,6]
set(a).intersection(b)
票数 91
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3697432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档