我有两个清单 例如:
A = [1,3,5,7]
B = [1,2,3,4,5,6,7,8]
现在,A始终是B的子集 我想生成第三个列表C: 它具有存在于B但在A中不存在的元素 喜欢
C = [2,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]
如果您有多个这样的操作,那么始终使用套件可能是最佳选择。如果设置了A
和B
,则可以执行
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)))
应该这样做。