gpt4 book ai didi

python - 修改for循环中的范围变量(python)

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:48 25 4
gpt4 key购买 nike

我不确定为什么 python 会显示这种行为:

for x in range(5):
print "Before: ",x
if x<3:
x-=1
print "After: ",x

我得到的输出是:

Before:  0
After: -1
Before: 1
After: 0
Before: 2
After: 1
Before: 3
After: 3
Before: 4
After: 4

我没想到它会在第一次迭代中将 x 的值更改为 -1 后将其更改为 1。或者,当我想更改范围变量的值时,有没有办法实现所需的行为?

谢谢。

最佳答案

I am not sure why python would show this behavior

因为 x 在循环的每次迭代中都会被重置。

如果要修改范围,需要先保存到一个变量中,然后再修改

例如在 Python2 中

my_range = range(5) # [0, 1, 2, 3, 4]
for i,x in enumerate(my_range):
print "Before: ", my_range[i]
if x < 3:
my_range[i] = x-1
print "After: ", my_range[i]

print my_range # [-1, 0, 1, 3, 4]

关于python - 修改for循环中的范围变量(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36051330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com