Discuss / Python / 一脸懵逼~~

一脸懵逼~~

Topic source

“把list、dict、str等Iterable变成Iterator可以使用iter()函数” 下面总结又说: “集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。” 小白表示,已经晕了,到底可不可以得到 Iterator 谁能解释下。。

王李_WL

#2 Created at ... [Delete] [Delete and Lock User]

这段话已经说的很清楚,list,dict,str。可以用iter()变成Iterator。而他们本身不是Iterator,只是通过iter()函数变成了Iterator。但这三者本身是Iterable,因为它们可以迭代。

s = input('请输入要迭代的元素:') from collections import Iterable if isinstance(s,Iterable): for n in s: print(n)

这段代码可以将输入的数据迭代出来。因为数据已经确定了,所以可以迭代。但是你没法知道它下一个数据是什么,所以只是可以迭代,而不是迭代器。

但是迭代器(Iterator),是一个可以计算的迭代数据流!它可以自己计算出下一个数据是什么。只要你订好了规则,就可以不断的计算下一个数据是什么,可以认为迭代器里面的数据是无限的,根据需要可以取出来。而list,str,str则不行,因为这三者的数据是已经确定好的,同时也是有限的。

不知不觉w

#3 Created at ... [Delete] [Delete and Lock User]

以字符串'abc'为例,它是可迭代的,但它不是迭代器,但是如x = iter('abc'),用iter()函数处理可迭代对象就能得到迭代器。

忑啦米

#4 Created at ... [Delete] [Delete and Lock User]

“集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。” 小白表示,已经晕了,到底可不可以得到 Iterator 谁能解释下。。


```哈哈哈 你肯定是看错了 ,不过可以通过,不是‘不可以‘


  • 1

Reply