开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情
✔个人主页:Mr.Darcy8的掘金主页
🎉欢迎关注👀点赞👍收藏⭐留言📝以及交流人生哲理🎈学习心得🎁
引入
一门高级语言往往有一些独特的性质(或者独特的用法),使其变得更加简便、易于使用(哪怕会因此降低代码运行效率)
Python也是如此
而从笔者(一名在校生)的使用情况来看,相较于VB等其他编程语言,python的迭代器属实令人感到舒适。不得不承认在数据分析等多种场景中,迭代都是我经常使用的工具。
今天就来聊一聊迭代和迭代器
可迭代对象
作为一个经典的面向对象编程语言,python中的一切几乎都可以称为对象。
其中的可迭代对象Iterable,就是两类数据类型的统称:
- 集合数据类型(list、tuple、dict等)
- generator(生成器和带有yield的function)
迭代器
可迭代对象都可以用for循环来进行迭代。这是他们的共同点
而同样作为可迭代对象,生成器和集合数据类型的区别在于,集合数据类型不能用next函数进行调用并不断返回下一个值。但生成器可以。
这类可以被next函数调用的对象,我们取个新的名字,叫做迭代器(Iterator)
可迭代对象和迭代器的程序方法判断
如何在程序的使用中知道这个对象是迭代器还是仅仅只属于可迭代对象呢?我们可以通过isinstance函数来判断:
>>> from collections.abc import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> from collections.abc import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
如上。好好利用吧~
新人上路,欢迎互相帮扶~Mr_darcy8的掘金主页
可以的话给咱点个赞呗💖