在Python中,是否有更好(更明显/惯用)的方法来编写以下等效内容:
index = 0
while index < len(some_list):
do_some_stuff(some_list[index]) # may have many side effects
if delete_element(some_list[index]):
del some_list[index]
else:
index += 1
还是要用字典吗?因为
delete_element
的结果可能取决于do_some_stuff
,所以字典/列表推导式不适用。
enumerate
从零开始计数,即使在反向迭代器上调用它时也是如此。您需要使用del some_list[-index-1]
,以便删除的索引随着项目一起递减。 - Blckknght