For循环控制循环次数?

图片说明
为什么这题选的是D,而不是A
求大神解答

如果添加输出次数

letter=['A','B','C','D','D','D']

k=0
for i in letter:
    k=k+1
    print(k)
    if i=='D':
        letter.remove(i)
        print(letter)

结果为:

1
2
3
4
['A', 'B', 'C', 'D', 'D']
5
['A', 'B', 'C', 'D']

也就是删除第一个D后,数组的长度减少了,循环次数就减少了一次(变为5)

python中遍历列表,使用的是计数器(或者说下标)。
第一次计数器(下标)为0,所以取‘A’来对比
第四次下标为3,取‘D’
第五次下标为4,取列表的第六个‘D’#也就是说 原列表中letter[4]没有被取到,直接跳过了
如果letter=[1,2,3,4,'aaaaa',4],然后每次都打印i的值,i不会有为‘aaaaa’的情况