如何删除 python 中第二个列表中的列表项?

How to remove the items in a list that are in a second list in python?

我有一个列表列表和另一个列表,我想从第二个列表中的列表列表中删除所有项目。

first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]

一般情况下,我将如何着手解决这个问题?

这里也有类似的问题,但没有任何帮助。


result = []
for l in first:
    tmp = []
    for e in l:
        if e not in to_remove:
            tmp.append(e)
    result.append(tmp)

print(result)

此代码遍历所有列表和每个列表的所有元素,如果元素在 to_remove 列表中,则跳过它并转到下一个。 所以如果你有多个实例,它会删除它

此致

使用sets的优雅解决方案:

first = [[1,3,2,4],[1,2],[3,4,2,5,1]]
to_remove = [1,2]
result = [list(set(x).difference(to_remove)) for x in first]
result
[[3, 4], [], [3, 4, 5]]