从列表中删除子列表

dim*_*s93 7 python list

我想在 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
Run Code Online (Sandbox Code Playgroud)

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

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

Net*_*ave 8

使用套装:

C = list(set(A) - set(B))
Run Code Online (Sandbox Code Playgroud)

如果您想保留重复项和/或奥德:

filter_set = set(B)
C = [x for x in A if x not in filter_set]
Run Code Online (Sandbox Code Playgroud)

  • 看看我更新的问题。我说的是列表,而不是集合。顺序也很重要。 (2认同)