【发布时间】:2020-02-06 17:29:47
【问题描述】:
我必须删除特定的给定元素。我用list1=[0,1,2,2,3,0,4,2]和remove_element=2
def fun(list1,remove_element):
if len(list1)==0:
return 0
for i in range(len(list1)):
if remove_element==list1[i]:
list1.remove(remove_element)
return list1
这是我得到的错误:
Traceback (most recent call last):
File "<pyshell#205>", line 1, in <module>
print(fun(list1,remove_element))
File "<pyshell#204>", line 5, in fun
if remove_element==list1[i]:
IndexError: list index out of range
【问题讨论】:
-
return [x for x in list1 if x != remove_element] -
你的问题是,一旦你从列表中删除元素,它就会变短一个元素,所以一旦你删除了项目,你迭代的范围就会比列表长
标签: python list indexing range