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等等这些再大也都是有数量的,所以不属于迭代器。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值