(使用 Python 3)
给定这个名为 numList 的列表:[1,1,2,2,3,3,3,4]。我想从 numList 中删除“1”和“3”的一个实例。换句话说,我想要一个将 numList 变成:[1,2,2,3,3,4] 的函数。什么函数可以让我从 Python 列表中删除 X 个元素,我要删除的每个元素一次?(我要删除的元素保证存在于列表中)
为了清楚起见,我将给出更多示例:
[1,2,3,3,4] 移除 2 和 3 [1,3,4]
[3,3,3] 删除 3 [3,3]
[1,1,2,2,3,4,4,4,4] 移除 2, 3 和 4 [1,1,2,4,4,4]
我试过这样做:
numList=[1,2,2,3,3,4,4,4]
remList = [2,3,4]
对于 remList 中的 x:
numList.remove(x)
这会将 numList 变为 [1,2,3,4,4] 这是我想要的。但是,这具有以下复杂性:
O((len(numList))^(len(remList)))
这是一个问题,因为 remList 和 numList 的长度可以是 10^5。该程序将需要很长时间才能运行。是否有内置功能可以更快地完成我想要的操作?
另外,我更喜欢可以在空间和时间方面完成这项工作的最佳功能,因为程序需要在不到一秒的时间内运行并且列表的大小很大。