我正在尝试列表中的'line1','line4'和'line5'。但结果出来并不是我所期望的。
item = ['line1',
'line2',
'line3',
'line4',
'line5',
'line6',
'line7',
'line8']
removeLine = [0,1,3,5]
for x, y in grouped(sorted(removeLine), 2):
print x,y
del item[x:y]
print item
>>> ['line2', 'line3', 'line4', 'line7', 'line8']
但我的预期结果是
>>> ['line2', 'line3', 'line7', 'line8']
希望有人可以给我一些建议。非常感谢你。
答案 0 :(得分:0)
您可以使用
enumerate
功能来实现此目的:
my_list = ['0','1','2','3','4','5']
index_to_delete = [0,3,4]
for i,j in enumerate(index_to_delete): #Groups indices with numbers
del my_list[j-i] #After every deletion i increases to account for lost index
>>>print(my_list)
['1', '2', '5']
通过此,您可以了解到需要跟踪删除的一般信息。因此,在每次删除之后,要删除要删除的索引以应对删除。
这可以通过多种方式完成,使用enumerate
对我来说似乎是最轻的情况,我没有修改我的代码来完成你的工作,因为它离开了你要实施,因为现在你有了这样做的一般想法。