我有一个列表,我想从中删除某些元素 我创建了一个for循环,在这个for循环中已经把我的列表[i]
prule
是一个字符串列表,其中包含数字作为字符串0
到159
的字符串11154
def getind(li)
ret = {}
for i, x in enumerate(li):
if x not in ret:
ret[x] = []
ret[x].append(i)
return ret
dups = getind(prule)
for n in dups.get('159',[]):
del rulelines[n]
经过一段时间这样做list assignment index out of range
我猜是因为列表得到了更新。有什么我可以使用,所以它不会得到更新,直到for循环结束
答案 0 :(得分:0)
您应该向后浏览您的列表:
for x in range(subjectlength - 1, -1, -1):
del my_list[x]
答案 1 :(得分:0)
正如我在答案here
中所纠正的那样dups = getind(prules)
indexes = dups.get('156',[])
rulelines = [rulelines[i] for i in range(len(rulelines[:])) if i not in indexes]
应该是解决问题的方法。