Python中非函数迭代 python 函数迭代( 三 )


参考教程:
《流畅的python》 P330 - 363
Python基础之迭代器一.什么是迭代器
迭代器是用来迭代取值的工具 。
而涉及到把多个值循环取出来的类型有:列表,字符串,元组,字段,集合,打开文件等 。通过使用的遍历方式有for···in···,while等,但是,这些方式只适用于有索引的数据类型 。为了解决索引取的局限性,python提供了一种不依赖于索引的取值方式:迭代器
注意:
二.可迭代对象
可迭代对象:但凡内置有__iter__方法的都称为可迭代对象
常见的可迭代对象:
1.集合数据类型 , 如list,tuple,dict,set,str等
2.生成器 , 包括生成器和带yield的生成器函数 。
三.如何创建迭代器
迭代器是一个包含数个值的对象 。
迭代器是可以迭代的对象,这意味着您可以遍历所有值 。
从技术上讲,在Python中,迭代器是实现迭代器协议的对象,该协议由方法__iter__()和__next__()组成 。
简而言之,一个类里面实现了__iter__()和__next__()这两个魔法方法,那么这个类的对象就是可迭代对象 。
四.迭代器的优缺点
1.优点
2.缺点
五.迭代器示例
另外,如果类Stu继承了Iterator,那么Stu可以不用实现__iter__()方法
遍历迭代器
StopIteration
如果你有足够的next()语句,或者在 for 循环中使用,则上面的例子将永远进行下去 。
为了防止迭代永远进行,我们可以使用StopIteration语句 。
在__next__()方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误
Python中什么是迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration) 。
【Python中非函数迭代 python 函数迭代】在Python中 , 迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的 , 比如Java代码:
for (i=0; ilist.length; i++) {n = list[i];
}
可以看出,Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上 。
list这种数据类型虽然有下标 , 但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标 , 都可以迭代,比如dict就可以迭代:
d = {'a': 1, 'b': 2, 'c': 3} for key in d:...print(key)
...
a
c
b
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样 。
默认情况下 , dict迭代的是key 。如果要迭代value , 可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items() 。
由于字符串也是可迭代对象,因此,也可以作用于for循环:
for ch in 'ABC':...print(ch)
...
A
B
C
所以 , 当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型 。
这个网站有很多Python的系统、基础教程,可以看看 。网页链接
Python中非函数迭代的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于python 函数迭代、Python中非函数迭代的信息别忘了在本站进行查找喔 。

推荐阅读