当我在给定代码中放入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)
答案 0 :(得分:1)
计数器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
您可以通过这种方式实现循环。
答案 1 :(得分:0)
i
是计数器,因此,如果将其设置为循环内的值,将无法正确计数。