2010-05-19 2 views
3

У меня есть список чисел с плавающей запятой, и я хотел бы инкрементно удалить набор элементов в заданном диапазоне индексов, sth. как:удаление элементов поэтапно из списка

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] 
Смежные вопросы