一尘不染

Python -从另一个列表中删除一个列表中出现的所有元素

python

假设我有两个列表,l1和l2。我要执行l1 - l2,返回l1not中的所有元素l2。

我可以想到一个幼稚的循环方法来执行此操作,但这实际上效率很低。什么是Python高效的方法?

例如,如果我有l1 = [1,2,6,8] and l2 = [2,3,5,8]l1 - l2应返回[1,6]


阅读 1350

收藏
2020-02-12

共1个答案

一尘不染

Python具有称为List Comprehensions的语言功能,非常适合使这种事情变得非常容易。以下语句完全满足你的要求,并将结果存储在l3:

l3 = [x for x in l1 if x not in l2]

l3将包含[1, 6]

2020-02-12