Python函数之迭代器
收录于话题
#Python入门
27个
概要:
1.迭代器:可迭代的对象.__iter__即可获取迭代器
2.dir():查看对象中的方法;
3.isinstance() 判断xxx对象是否是xxx类型
4.for循环调用迭代器
一.迭代器
1. Iterable: 可迭代的.里面有__iter__ 常见的有str, list. tuple, dict, set, open(), range()
print ("__iter__" in dir(可迭代对象))
在打印结果中. 寻找__iter__ 如果能找到. 那么这个类的对象就是一个可迭代对象
2. Iterator: 迭代器. 里面有__iter__ ,还有 __next__方法
3.特点:
1. 节省内存(欠)
2. 惰性机制(只有执行__next__()才会取值)
3. 只能向前. 不能反复
列子1:
lst=[1,2,3,4,5] #列表是可迭代的
x = lst.__iter__() #获取迭代器
print( "__iter__" in dir(x)) # 迭代器里面是有__iter__的.迭代器一定是可迭代的
print("__next__" in dir(x)) #迭代器. 里面有__iter__ 还有 __next__
例子2:
lst = [1,2,3,4]
it=lst.__iter__()
print(it.__next__()) #1
print(it.__next__())#2
print(it.__next__())#3
print(it.__next__())#4
print(it.__next__())# 此时报错 StopIteration
二.dir() 查看数据可以执行的方法
例子3:
s = "哇哈哈"
print(dir(s)) #查看打印对象中的方法和函数
在打印结果中. 寻找__iter__ 如果能找到. 那么这个类的对象就是一个可迭代对象
三.isinstance() 判断xxx对象是否是xxx类型
例子4:
from collections import Iterable
from collections import Iterator
lst = ["周润发","麻花藤","刘伟"]
it=lst.__iter__() #迭代器
print(isinstance(it,Iterable)) #True
print(isinstance(it,Iterator))# True
print(isinstance(lst,Iterator)) #False
print(isinstance(lst,Iterable))#True
四.for循环的内部用迭代器
lst = [1,2,3,4]
lst_iter=lst.__iter__()
while 1:
try:
print(lst_iter.__next__())
except StopIteration:
break #结果 为1 2 3 4 换行输出的
我们可以把要迭代的内容当成子弹. 然后呢. 获取到迭代器__iter__(), 就把子弹都装在弹夹中. 然后发射就是__next__()把每一个子弹(元素)打出来. 也就是说, for循环的时候. 一开始的时候是__iter__()来获取迭代器. 后面每次获取元素都是通过__next__()来完成的. 当程序遇到StopIteration将结束循环.
- 015.Python之迭代器、生成器、面向过程编程、生成式及内置函数补充
- python 0基础学习笔记4:函数、集合、迭代器、math库、random库
- python中迭代器和iter()函数
- python_函数_迭代器
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
- python基础----迭代器、生成器、协程函数及应用(面向过程实例)
- Python中可迭代对象、迭代器以及iter()函数的两个用法详解
- Python3 迭代器与生成器,函数,数据结构
- python(基础)函数的特殊用法&迭代器&生成器
- Python用zip函数同时遍历多个迭代器示例详解
- Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数
- 【Python学习日记】函数列表 动态创建函数 文件读取 迭代器
- 有关python函数总结;可迭代对象、生成器与迭代器的区别;相关函数
- python中迭代器和iter()函数
- Python函数的迭代器与生成器
- Python 生成器函数,生成器表达式,迭代器,列表解析
- Python基础自学(第五章-函数进阶、迭代器和生成器、装饰器、上下文管理器、变量的作用域)
- 详解Python中的内建函数,可迭代对象,迭代器
- Python用zip函数同时遍历多个迭代器示例详解
- 【每天1分钟】PYTHON基础之条件与循环(几个返回迭代器的函数)