0 python
我想要做的是搜索列表并删除一个值.
所以我写了下面的代码
for x in range(10):
if x in list1:
list1.remove(x)
Run Code Online (Sandbox Code Playgroud)
这个函数是否为〜(n ^ 2),因为它首先查找该值,然后删除并向后推送其余的值?
还有一种方法可以通过使用try/except来按顺序n转换它
try:
for x in range(10):
list1.remove(x)
except ValueError:
# make it go back to next iteration
Run Code Online (Sandbox Code Playgroud)
使用:
L = [x for x in L if x not in removal_list]
Run Code Online (Sandbox Code Playgroud)
removal_list可以是任何容器,但是如果你使用set()或frozenset(),你将获得O(n)(n = len(L)).