iters = list(map(iter, ('ab','12')))
while iters:
try:
res = [next(i) for i in iters] #语句 1
print("res=",res)
except StopIteration:
print("OVER")
break
上面这段程序输出如下:
res= ['a', '1']
res= ['b', '2']
OVER
但是把语句 1 中方括号变成圆括号后,语句 1 变成:“ res = (next(i) for i in iters)”,此时输出是如下两条信息的反复循环:
res= at 0x020881E0>
res= at 0x02088480>
...
我的问题是:
为何语句 1 中方括号变成圆括号,res 此时变成了生成器表达式后,会导致输出无限循环?
请大家指点,感谢!
while iters:
try:
res = [next(i) for i in iters] #语句 1
print("res=",res)
except StopIteration:
print("OVER")
break
上面这段程序输出如下:
res= ['a', '1']
res= ['b', '2']
OVER
但是把语句 1 中方括号变成圆括号后,语句 1 变成:“ res = (next(i) for i in iters)”,此时输出是如下两条信息的反复循环:
res= at 0x020881E0>
res= at 0x02088480>
...
我的问题是:
为何语句 1 中方括号变成圆括号,res 此时变成了生成器表达式后,会导致输出无限循环?
请大家指点,感谢!