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操作(列表交集)?
发布于 2010-09-13 09:32:48
如果顺序并不重要,并且您不需要担心重复,那么您可以使用set intersection:
>>> a = [1,2,3,4,5]
>>> b = [1,3,5,6]
>>> list(set(a) & set(b))
[1, 3, 5]
发布于 2015-10-12 00:47:47
对我来说,使用列表理解是非常明显的。不确定性能,但至少事情会留在列表中。
[x for x in a if x in b]
或者“所有在A中的x值,如果X值在B中”。
发布于 2010-09-13 09:36:19
如果您将两个列表中较大的一个转换为一个集合,则可以使用intersection()
获得该集合与任何可迭代对象的交集
a = [1,2,3,4,5]
b = [1,3,5,6]
set(a).intersection(b)
https://stackoverflow.com/questions/3697432
复制相似问题