从内部二维列表中删除 n 个值的最快方法

Fastes way to remove n values from inner 2D list

我有一个二维列表,其中包含数字 1 到 n,每个列表出现两次。 我想找到最快的方法来完全摆脱它们。 示例:

input = [[], [6,7,7,6], [1,2,3,2,3,1], [], [4,4,5,5]]
#remove 4 and 1
output = [[], [6,7,7,6], [2,3,2,3], [], [5,5]]

(列表可以为空)

我想出了那个代码,但我确实觉得自从它创建一个新列表以来它有点慢。有更聪明的方法吗?

input = [[], [6,7,7,6], [1,2,3,2,3,1], [], [4,4,5,5]]
output = list()
to_remove = [1,4]
    for inner in input:
        new_inner = [x for x in inner if x not in to_remove]
        output.append(new_inner)

您可以使用两个列表推导来完成此操作,再加上使用一个集合,该集合可以更快地查找要删除的大量元素:

input = [[], [6,7,7,6], [1,2,3,2,3,1], [], [4,4,5,5]]
to_remove = set([1,4])
output = [[x for x in inner if x not in to_remove] for inner in input]