python开发函数进阶:可迭代的&迭代器&生成器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python开发函数进阶:可迭代的&迭代器&生成器相关的知识,希望对你有一定的参考价值。

一,可迭代的

#iterable 可迭代的
#str
#列表
#tuple
#set
#dict

#可迭代的 ——对应的标志 __iter__
# print(‘__iter__‘ in dir([1,2,3])) #判断一个变量是不是一个可迭代的

可迭代的转化成迭代器方法

1 #!/usr/bin/env python
2 #*_*_cod:utf-8_*_
3 
4 #将可迭代的转化成迭代器
5 l = [1,2,3,4,5]
6 for i in l:
7     print(i)
8 print(iter(l))   #内置函数  iter == l._iter_()
9 print(l.__iter__())

 

二,迭代器

#迭代器 大部分都是在python的内部去使用的,我们直接拿来用就行了
#迭代器:内置__iter__和__next__方法

迭代器实现for循环

 1 #!/usr/bin/env python
 2 #*_*_cod:utf-8_*_
 3 
 4 l = [1,2,3,4,5]
 5 l_iterator = iter(l)
 6 print(l_iterator.__next__())
 7 print(l_iterator.__next__())
 8 print(l_iterator.__next__())
 9 print(l_iterator.__next__())
10 print(l_iterator.__next__())
11 next(l_iterator) #==l_iterator.__next__()
12 while True:  自己写相当于for循环
13     try:
14         print(next(l_iterator))
15     except StopIteration:
16         break

 

小结:

#!/usr/bin/env python
#*_*_cod:utf-8_*_

#迭代器 大部分都是在python的内部去使用的,我们直接拿来用就行了
#迭代器:内置__iter__和__next__方法
from collections import Iterable
from collections import Iterator
#判断是否是迭代器 和 可迭代对象的简便方法
# s = ‘abc‘
# print(isinstance(s,Iterable))      s 是不是一个可迭代对象
# print(isinstance(s,Iterator))      s 是不是一个迭代对象
# print(isinstance(iter(s),Iterator))

 








以上是关于python开发函数进阶:可迭代的&迭代器&生成器的主要内容,如果未能解决你的问题,请参考以下文章

好好学python·函数进阶(递归函数,回调函数,闭包函数,匿名函数,迭代器)

函数进阶之迭代器,递归

Python——迭代器&可迭代对象

Python进阶:设计模式之迭代器模式

Python进阶:设计模式之迭代器模式

Python进阶:迭代器与迭代器切片