使用for循环遍历一个列表的会根据列表的下标索引来读取
# 首先看这里
letter = ['A', 'B', 'C', 'D', 'D', 'D']
# 下标 0 1 2 3 4 5
# 执行for循环,i会依次等于0,1,2...
for i in letter:
letter.remove(i) # remove()根据下标删除原列表的元素
"""
执行第一次for循环,得到列表['B', 'C', 'D', 'D', 'D'],即删掉了第0个元素
执行第二次for循环,去删掉第1个元素,即['B', 'C', 'D', 'D', 'D']中的'C'
得到列表['B', 'D', 'D', 'D']
执行第三次for循环,会去掉第2个元素,即['B', 'D', 'D', 'D']中的'D'
0 1 *2* 3
得到列表['B', 'D', 'D']
由于新列表已经不存在下标为3的元素,因此最后结果是['B', 'D', 'D']
"""
print(letter) # ['B', 'D', 'D']
# 再看这里
letter = ['A', 'B', 'C', 'D', 'D', 'D']
# 下标 0 1 2 3 4 5
for i in letter:
if i == 'D':
letter.remove(i)
"""
['A', 'B', 'C', 'D', 'D', 'D']
假设的D元素下标 0 1 2
执行第一次for循环,去掉第0个'D'元素,得到列表['A', 'B', 'C', 'D', 'D']
假设的D元素下标 0 1
执行第二次for循环,去掉第1个D元素,得到列表['A', 'B', 'C', 'D']
由于已经不存在下标为2的D元素,因此最后结果是['A', 'B', 'C', 'D']
"""
print(letter) # ['A', 'B', 'C', 'D']
希望可以帮到你!!