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不是迭代器吗???????
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不是迭代器吗???????
isinstance是一个判断变量类型的方法,类似type(),返回的是bool值,你从函数名字就可以猜出来了?
这个例子中g已经是迭代器了
所以你要print(next(g)),多次执行就循环打印迭代器中的值
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
你是不是写错了?
把next(t)改成next(g)也可以啊。
但是要全部遍历要放进循环里,
如果一直用next手动遍历最后一次会报错。