for循环中关于列表list中remove()不彻底的问题

关于remove() 删除不彻底的问题:
a = [‘0’, ‘1’, ‘2’, ‘3’, ‘0’, ‘0’, ‘3’, ‘0’]
for i in a:

a=['1','A', '2', '3', 'A','A', '3','A', '5']
for i in a:
	if i == 'A':
		a.remove(i)
print(a)
#['1', '2', '3', '3', 'A', '5']

这是由 for语句的 “索引” 造成的,随着a列表的缩短,for的索引不变,即:for语句删除了前两个 ‘A’和最后一个 ‘A’,但跳过了第三个’A’,造成列表中的 ‘A’ 未能全去除。

如何解决这个问题呢?
用一个临时列表保存待删除的元素,在for循环临时列表来删除老列表中的元素;或者直接用剩余元素列表覆盖原列表

你可能感兴趣的:(for循环中关于列表list中remove()不彻底的问题)