[英]The counter in the for loop doesn't get change
当我在给定的代码中放入 i=x 时,for 循环中的 i 不会改变。
s=input()
d={}
Str=""
for i in range(len(s)):
if s[i] not in d:
d[s[i]]=i
else:
x=d[s[i]]
res=str("".join(d.keys()))
if len(Str)<len(res):
Str=res
i=x
d.clear()
print(Str)
计数器 i 确实更改为 x,但仅用于一个简短的实例。 想想for i in range(n)
被实现如下:
i = first value in range
while True:
do something;
i=x; # your assignment
if no more values in range:
break;
else:
i = next value in range;
因此,在将 x 分配给 i 之后,您最终会到达for
循环的底部并将范围表达式中的下一个值分配给 i。
以上并不是range
的具体实现方式,但您明白了。 您期望它的行为更像:
i = 0
while i < n:
do something;
i = x;
i += 1
你可以这样实现你的循环。
i
是计数器,所以如果你将它设置为循环内的一个值,它就不会正确计数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.