从列表中删除子列表

新手上路,请多包涵

我想在 Python 中执行以下操作:

 A = [1, 2, 3, 4, 5, 6, 7, 7, 7]
C = A - [3, 4]  # Should be [1, 2, 5, 6, 7, 7, 7]
C = A - [4, 3]  # Should not be removing anything, because sequence 4, 3 is not found

所以,我只是想从另一个列表中删除子列表的第一次出现(作为一个序列)。我怎样才能做到这一点?

编辑: 我说的是列表,而不是集合。这意味着项目的排序(顺序)很重要( A 和 B 中),以及重复项。

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

阅读 480
1 个回答

使用套装:

 C = list(set(A) - set(B))

如果您想保留重复项和/或订单:

 filter_set = set(B)
C = [x for x in A if x not in filter_set]

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

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