在已知索引的情况下,如何快速删除列表中索引对应的值,如果直接删除会引起错误,如下:
a = [0,1,2,3,4,5,6,7,8,9]
index = [4,3,6]
for i in index:
del a[i]
print(a)
原本想删除列表a中的4,3,6三个数,结果删除列表a中的3,4,8三个数,原因在于每次删除一个数,列表a已经发生改变,每个值对应的索引也发生了改变。
为了删除预期值,可以每次删除索引中的最大值,如下:
a = [0,1,2,3,4,5,6,7,8,9]
b = [4,3,6]
for i in sorted(b)[::-1]:
del a[i]
print(a)
通过sorted()函数对索引进行倒排序,这样每次都是获取最大索引值,每次删除最大索引对应值,这样对索引值较小对应值不产生影响,能达到预期的结果。