gpt4 book ai didi

python - Python for 语句的混淆行为

转载 作者:可可西里 更新时间:2023-11-01 10:54:45 25 4
gpt4 key购买 nike

我有以下 python 代码:

x = range(0,10)
print x

for number in x:
print(number)
if number%2<> 0:
x.remove(number)

print x

奇怪的是,输出是这样的:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
0
1
3
5
7
9
[0, 2, 4, 6, 8]

第一行和最后一行是对的,但是为什么2、4、6、8没有打印出来呢? print语句不在if语句里面!

我在 Windows 7 上使用 python(x,y)。另外,我是 Python 的新手...我习惯了 C++

最佳答案

您正在从列表中删除项目 (x.remove),同时迭代它(for number in x)。

for-in 单独维护一个索引,这就是修改列表会出现意外行为的原因。

关于python - Python for 语句的混淆行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005036/

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