[英]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.