空白的天 发表于 2020-12-29 14:47:43

python迭代器问题

y = iter(range(5))

while 1:
    try:
      each = next(y)
    except StopIteration:
      break

    print(each)
=========================
while 1:
    try:
      each = next(iter(range(5)))
    except StopIteration:
      break

    print(each)

求解,这两个为什么输出的结果不一样,他们是怎么运行的

liangqing77 发表于 2020-12-29 15:40:08

加油

以后。 发表于 2020-12-29 16:05:06

iter(range(5))放在循环内被反复执行

2269099035 发表于 2020-12-29 16:09:20

我举个例子吧。这个就像
i = 0
while 1:
i += 1

while 1:
i = 0
i += 1
的区别一样,后者一直对值进行初始化,所以每次的值都是一样的。而前者的初始化是在循环的外面

空白的天 发表于 2020-12-29 18:21:45

liangqing77 发表于 2020-12-29 15:40
加油

谢谢

空白的天 发表于 2020-12-29 18:22:24

以后。 发表于 2020-12-29 16:05
iter(range(5))放在循环内被反复执行

恩 谢谢
页: [1]
查看完整版本: python迭代器问题