2010-05-19 165 views
3

我有一个浮点数的列表,我想在指定的索引范围内增量删除 一组元素。像:从列表中增量删除元素

for j in range(beginIndex, endIndex+1): 
    print ("remove [%d] => val: %g" % (j, myList[j])) 
    del myList[j] 

然而,因为我遍历同一个列表,索引(范围) 都不再有效了新的列表。 有没有人有关于如何正确删除元素 的建议?

最好的祝愿

回答

9

你真的需要incrementaly删除它们?

如果没有,你可以做到这一点是这样的:

del myList[beginIndex:endIndex+1] 
1

这样的事情?

>>> list1 = [1,2,3,4,5,6] 
>>> start, end = 2, 4 
>>> list1[:start] + list1[end:] 
[1, 2, 5, 6] 
2

您可以从最终迭代到序列的开端:

for j in range(endIndex, beginIndex-1, -1): 
    print ("remove [%d] => val: %g" % (j, myList[j])) 
    del myList[j]