这个题为啥选D,我想选B

 

remove是在循环内部,每次都会删除一个,当你删除第一个D的时候,列表已经发生改变,后面的一个D会顶替你删除的D的位置,下次循环的D是列表改变后的第二个D,也就是说下一次循环的是最后一个D所以会跳过第二个,

remove用法删除制定字符,如果有多个删除第一个,

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

d有3个,碰到第一个d删除,长度-1,再次遍历跳过第二d,到最后一个d匹配,删除跳过的d,剩下最后一个d

letter=['a','b','c','d1','d2','d3']
for i in letter:
   if i.find('d')==0:
      letter.remove(i)

print(letter)#['a', 'b', 'c', 'd2']

写了个模拟的,删除以d开头的字符,就剩下d2了,这样好理解些。