我正在为一项工作编写算法,遇到一个问题:如何一次从数组中删除多个元素?例如,有这样的代码:
a = [1,2,3,4,5]
b = [1,3,5]
a.remove(*b)
这段代码不起作用(它给出了一个错误,.remove()它应该只获取一个元素)。
还有这样的代码:
a = [1,2,3,4,5]
b = [1,3,5]
for i in b:
a.remove(i)
但这段代码的问题是速度很慢(并且a、 和b有超过 1000 个元素)。
有没有算法(或团队)可以解决这样的问题?
内置类型
set(set)支持减法(-)运算:结论:
元素的顺序被
a保留。最小附加内存仅为b_set.a将就地更新,无需额外内存。难度是线性的。使用设定差值