- 主题:这个题为什么应该是这样输出?
letter=['A','B','C','D','D','D']
for i in letter:
if i=='D':
letter.remove(i)
print(letter)
为什么输出应该是['A','B','C','D'] 而不是['A','B','C'] ?
--
FROM 60.253.191.*
为什么是两次循环到头 到哪个头
【 在 superlq 的大作中提到: 】
: for 从前往后,加上remove一次只能移除一个 两次循环到头了
:
: 所以第三个D就保留下来了
: ...................
--
FROM 60.253.191.*
是如何被改变的
【 在 easior 的大作中提到: 】
: 遍历可迭代对象的过程中
: 可迭代对象本身还被改变了
: 这种情况用 for 循环看起来不靠谱
: ...................
--
FROM 60.253.191.*
忘了怎么单步调试了 我用的不是PyCharm而是SublimeText 如何单步调试?
【 在 pixYY 的大作中提到: 】
: 单步调试,看一下 letter 的变化就明白了
:
--
FROM 60.253.191.*
指针?Python中有指针的概念吗?for i in letter:这句话中的letter,是表示列表letter的长度吗?
【 在 feng321 的大作中提到: 】
: 估计是这样执行的:
: 第一次,移除3位置的D(从0开始,A的位置是0),指针指向了4位置的D,letter长度变为了5
: 第二次,移除4位置的D,注意,这时候letter的长度是5了,也就是说位置4,实际上是最后一个位置。4前面的一个D,被跳过了。
: ...................
--
FROM 60.253.146.*
每执行一次循环后,往后加一? 加一还用往后?计数器,哪里是后?
【 在 feng321 的大作中提到: 】
: letter是字符列表。类似指针,就是一个计数器,每执行一次循环后,往后加一
: :
--
FROM 60.253.146.*
这个可能有误。最好把每一步各变量的情况都列举一下
【 在 feng321 的大作中提到: 】
: 估计是这样执行的:
: 第一次,移除3位置的D(从0开始,A的位置是0),指针指向了4位置的D,letter长度变为了5
: 第二次,移除4位置的D,注意,这时候letter的长度是5了,也就是说位置4,实际上是最后一个位置。4前面的一个D,被跳过了。
: ...................
--
FROM 60.253.146.*
这问题竟然已经过去一年半了 我bookmark一下,有时间再琢磨琢磨
【 在 poggy 的大作中提到: 】
:
: 要回答这个问题, 首先, 要解决几个知识点。
: 1, for in 是什么,
: ...................
--
FROM 111.197.65.*