我是靠谱客的博主 搞怪期待,这篇文章主要介绍python迭代廖雪峰_自学python第19天:迭代器(Iterator),现在分享给大家,希望可以做个参考。

#现在的学习开始逐渐偏离的按天的计算,以前一课可以通过一天的学习即可掌握,但是现在恐怕不行,有时候一个知识点可能需要几天来了解,那么我再按照第几天来算是不是就有点不对等了呢?既然做了笔记,我觉得还是应该知道自己的学习进度才可以,虽然可以看到文章的时间,但是对于自己来说,想要更直观的知道自己在哪一个知识点用了更长的时间的话,还是直接体现在标题上更好,所以我会将前面的生成器标题改为从我学习到那一天的总共时间,也是给自己一个时间上的紧迫感,六个月,180天,希望自己到时候再回过头来看时不会再有现在的疑惑

#关于生成器和迭代器这两块学算不上掌握,甚至对于迭代器这里看了两天,也没发现与生成器哪里使用方法会不一样,可能是面向的对象更多,目前这个状态可能过几天就会忘记,在学习这里的时候,突然发现自己对于return的使用和print有点混淆不清了,看来还需要多次复习才行。

第19天,迭代器(Iterator):可以被next调用并不断返回下一个值的函数统称为迭代器(感觉和生成器的定义是一毛一样的)

在学习迭代器之前,先来复习一下可以迭代的对象,曾经在迭代那一课学过,基本上很好记,但如果记不住的话,我们也可以使用isinstance来进行查询:

>>>from collections import Iterabale

# 注意Iterable里面的i是大写,错了就是文字问题

>>> isinstance([], Iterable)

True

>>> isinstance({}, Iterable)

True

>>> isinstance('abc', Iterable)

True

>>> isinstance((x for x in range(10)), Iterable)

True

>>> isinstance(100, Iterable)

False

#从上述来看,我们也了解到了可以迭代的对象分别是:序列[list]、字典{dic}、集合{set:}、字符(str)、元祖(tuple)、生成器(generator)!而数字(int)则是不可迭代的!

#上述讲完了迭代以及查询方法后,会发现生成器(generator)和迭代器(Iterator)的定义相同:使用for循环即可遍历内容,当然也可以使用next()来逐一迭代

#虽然上述很多类型都可以进行迭代,不过却只有一项是可以用在迭代器中的,当然,如果不知道的话依然可以使用isinstance来查询

>>>from collections import Iterabale

# 注意#Iterable里面的i是大写,错了就是文字问题

>>> isinstance((x for x in range(10)), Iterator)

True

>>> isinstance([], Iterator)

False

>>> isinstance({}, Iterator)

False

>>> isinstance('abc', Iterator)

False

#上述中的list、tuple、dict、set以及str虽然都是Iterable但却不是Iterator,只有生成器是迭代器的对象(因为这俩定义就是一样的啊!)

#如果想要将他们变为迭代器对象,只需要使用iter()即可

>>> isinstance(iter([]), Iterator)

True

>>> isinstance(iter('abc'), Iterator)

True

#注意# iter中的i是小写,千万不要搞混了,否则就变成了not found喽!

#最后一点就是:廖雪峰老师解释了为什么上面几项都不是Iterator,迭代器表示的是一个数据流,可以表示一种算法,无限的长度,但是它并不会展现给你,而是每次你想要调用,他就会计算一个给你,而list等等这些再大也都是有数量的,所以不属于迭代器。

#虽然内容不多,但是对于这块的理解因为一直没有一个具体的示例,所以也并不知道可以用作什么,就当对于后面的东西先提前打基础了吧。

最后

以上就是搞怪期待最近收集整理的关于python迭代廖雪峰_自学python第19天:迭代器(Iterator)的全部内容,更多相关python迭代廖雪峰_自学python第19天内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部