声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
除了for循环外,还有很多工具都有自动迭代的能力。
下面是经典的for循环自动迭代文件的代码:
除了for循环外,列表解析、in成员关系测试、map内置函数以及像sorted和zip调用这样的内置函数也都使用了迭代协议。当应用于一个文件时,所有这些使用文件对象的迭代器都自动地按行扫描:
还有些函数其实也变相地使用了迭代功能。例如,sum调用计算任何可迭代对象中的总数,如果一个可迭代对象中任何的或所有的项为真的时候,any和all内置函数分别返回True;max和min分别返回一个可迭代对象中最大和最小的项。如下示例中的所有工具接受任何可迭代对象作为一个参数,并且使用迭代协议来扫描它,但返回单个的结果:
list和tuple内置函数,字符串join方法也会使用对象的迭代协议:
另外,在函数调用中可能会用到的一种特殊的*arg形式,它也会使用迭代协议把一个集合的值解包为单个的参数: