首页 > 解决方案 > 如何正确地从列表中丢弃类似的元素?

问题描述

我有这样的清单:

a = [1,2,3,4,5,6,7]
b = [10,11,13,2,14,7]

我想要这样的输出:

b = [10,11,13,14]

如果 a 的元素在 b 中,则它已被丢弃。拜托,谁能告诉我该怎么做?

标签: python

解决方案


使用列表理解

b = [x for x in b if x not in a]

像这样工作:

a = [1,2,3,4,5,6,7]
b = [10,11,13,2,14,7]
b = [x for x in b if x not in a]

print b
>> [10, 11, 13, 14]

回复:@DeepSpace 的建议,在列表中查找集合的元素将比在另一个列表中查找列表的元素快得多,因此声明aset()

a = set([1,2,3,4,5,6,7])
b = [10,11,13,2,14,7]
b = [x for x in b if x not in a]

推荐阅读