2010-05-19 10 views
3

J'ai une liste de nombres flottants et je voudrais supprimer progressivement un ensemble d'éléments dans une gamme donnée d'index, sth. comme:supprimer des éléments de façon incrémentielle d'une liste

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

Cependant, depuis que je suis itérer sur la même liste, l'index (plage) ne sont pas plus valables pour la nouvelle liste. Est-ce que quelqu'un a des suggestions sur la façon de supprimer les éléments correctement?

Meilleurs voeux

Répondre

9

Avez-vous vraiment besoin de les enlever incrementaly?

Sinon, vous pouvez le faire comme ceci:

del myList[beginIndex:endIndex+1] 
1

Quelque chose comme ça?

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

Vous pouvez itérer de la fin au début de la séquence:

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