从列表python中排除常见元素

时间:2012-03-27 18:39:04

标签: python

  

可能重复:
  Python, compute list difference

我有两个清单  例如:

A = [1,3,5,7]
B = [1,2,3,4,5,6,7,8]

现在,A始终是B的子集 我想生成第三个列表C: 它具有存在于B但在A中不存在的元素 喜欢

C = [2,4..]

由于

4 个答案:

答案 0 :(得分:3)

List comprehensions是实现此目的的一种方法:

[x for x in B if x not in A]

如果您使用Python,我建议您熟悉列表推导。它们是一个非常强大的工具。

(有些人建议使用set。如果您只关心元素是否在集合中,这是一个非常好的主意,请注意它不会保留元素的顺序; a列表理解会。)

答案 1 :(得分:3)

一种简单的方法是

C = [x for x in B if x not in A]

对于大型列表来说这会变得很慢,因此最好对set使用A

A = set(A)
C = [x for x in B if x not in A]

如果您有多个这样的操作,那么始终使用套件可能是最佳选择。如果设置了AB,则可以执行

C = B - A

答案 2 :(得分:3)

>>> set(B) - set(A)
set([8, 2, 4, 6])

>>> sorted(set(B) - set(A))
[2, 4, 6, 8]

答案 3 :(得分:2)

C = sorted(list(set(B) - set(A)))

应该这样做。