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

新手上路,请多包涵

假设我有两个列表, l1l2 。我想执行 l1 - l2 ,它返回 l1 不在 l2 中的所有元素。

我可以想到一种简单的循环方法来做到这一点,但这将是非常低效的。这样做的pythonic和有效的方法是什么?

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

原文由 fandom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 389
1 个回答

Python 有一种称为 列表推导 的语言特性,它非常适合让这类事情变得极其简单。以下语句完全符合您的要求,并将结果存储在 l3 中:

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

l3 将包含 [1, 6]

原文由 Donut 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题