python迭代器问题

from collections import Iterator
from collections import Iterable
g = (x * x for x in range(10))
t = isinstance(g, Iterator)
print(t)#这一行的显示结果为true
print(next(t))#为什么这样子输出会显示错误???????????t不是迭代器吗???????
阅读 3.1k
3 个回答

你是不是写错了?
把next(t)改成next(g)也可以啊。
但是要全部遍历要放进循环里,
如果一直用next手动遍历最后一次会报错。

isinstance是一个判断变量类型的方法,类似type(),返回的是bool值,你从函数名字就可以猜出来了?

这个例子中g已经是迭代器了

所以你要print(next(g)),多次执行就循环打印迭代器中的值

这里的迭代器是g,t是isinstance函数返回值,你都打印出来是true了,怎么可能是迭代器

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题