FishHookНе успел ответить был занят, разобрался:
Да нельзя так делать! Не получишь ты правильного результата удаляя из списка в цикле.
После того, как ты удалишь нулевой элемент, первый элемент станет нулевым, второй первым и так далее.
Поэтому, когда ты удаляешь последовательно 0, 1 и 2-й элементы, ты удалишь 0, 2 и 4-й.
Попробуй выполни свой код и увидишь, что он не работает.
>>> a = [{'c1':'qqq'},{'c2':'www'},{'c3':'eee'},{'c4':'rrr'},{'c5':'ttt'}] >>> var = [0,1,2] >>> for i, o in enumerate(var): ... del a[i] ... print i,o,a ... 0 0 [{'c2': 'www'}, {'c3': 'eee'}, {'c4': 'rrr'}, {'c5': 'ttt'}] 1 1 [{'c2': 'www'}, {'c4': 'rrr'}, {'c5': 'ttt'}] 2 2 [{'c2': 'www'}, {'c4': 'rrr'}]
После первой итерации список съезжает и 1 элемент становится 0-ым.
Пришел к выводу, что эту задачу надо решать другим подходом без цикла.
спс всем за ответы.