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

问题:

假设我有两个列表l1l2。我想执行l1 - l2,它返回l1的所有元素,而不是l2
我可以想到一个天真的循环方法来做到这一点,但这将是非常低效的。什么是pythonic和有效的方式这样做?
例如,如果我有l1 = [1,2,6,8] and l2 = [2,3,5,8]l1 - l2应该返回[1,6]

回答:

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

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

 l3将包含[1, 6]
希望这可以帮助!

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Remove all the elements that occur in one list from another

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

24 − 18 =