python 迭代器
来源:互联网 发布:自动记牌器 安卓版源码 编辑:程序博客网 时间:2024/06/06 12:43
#有__next__方法的对象,都认为是可以迭代的,可通过x.__next__()来迭代,当迭代到空行会报错StopIterationf=open('e:/kangyujiao/test.txt')print(iter(f) is f) #文件本身就是迭代器print(f.__next__(),end='')print(f.__next__(),end='')#print(f.__next__(),end='')#内置函数next,他会自动条用对象的__next__方法,给定一个可迭代对象,调用next(x)和x.__next__()是一样的,当迭代到空行会报错StopIterationf=open('e:/kangyujiao/test.txt')print(next(f),end='')print(next(f),end='')#print(next(f),end='')#当for循环开始时,会通过他传给iter内置函数,以便从可迭代对象中获得一个迭代器,返回的对象含有需要的next方法l=[1,2,3]print(iter(l) is l) #列表不是迭代器i=iter(l)print(i.__next__())print(i.__next__())print(i.__next__())#其他迭代环境print(sum([1,2,3,4,5])) #15print(list(open('e:/kangyujiao/test.txt'))) #返回文件中的行组成的列表print(tuple(open('e:/kangyujiao/test.txt'))) #返回文件中的行组成的元组print('&&'.join(open('e:/kangyujiao/test.txt'))) #返回文件中的行组成的字符串a,b,c,d=open('e:/kangyujiao/test.txt') #文件中的行分别赋值给a,b,c,dprint(a,b,c,d)a,*b=open('e:/kangyujiao/test.txt') #文件中的第一行赋值给a,其他赋值给bprint(a,b)print(set(open('e:/kangyujiao/test.txt'))) #返回文件中的行组成的集合print({i:j for i,j in enumerate(open('e:/kangyujiao/test.txt'))}) #返回文件中的行组成的字典#多个迭代器vs单个迭代器#range本身不是迭代器,产生一个迭代器后,他支持多个迭代器,这些迭代器会记住他们各自的位置r=range(3)i1=iter(r)print(next(i1)) #0print(next(i1)) #1i2=iter(r)print(next(i2)) #0print(next(i2)) #1#zip,map和filter不支持相同结果上的多个活跃迭代器z=zip((1,2,3),(4,5,6))i1=iter(z)i2=iter(z)print(next(i1)) #(1,4)print(next(i1)) #(2,5)print(next(i1)) #(3,6)z=map(abs, (-1,-2,-3,-4))i1=iter(z)i2=iter(z)print(next(i1)) #1print(next(i1)) #2print(next(i1)) #3
阅读全文
0 0
- python迭代器
- python迭代器
- python 迭代器
- Python 迭代器
- Python:迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- python 迭代器
- Python--迭代器
- python迭代器
- Python 迭代器
- Python 迭代器
- [python]迭代器
- python 迭代器
- python 迭代器
- Python 迭代器
- Python 迭代器
- hadoop2.4.1集群+ubuntu
- 打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 )
- linux文件权限解说
- springmvc 后台返回json
- Java 8 习惯用语,第 5 部分 传递表达式(pass-through lambdas)的替代方案
- python 迭代器
- 微信小程序客服消息实现
- 原生JS 贪吃蛇
- android ANR产生原因(三总常见类型)和解决办法
- 三个线程轮流执行顺序打印ABC(一):使用Semaphore实现
- Jquery图片延迟加载插件jquery.lazyload.
- android studio 3.0 sdk 兼容 eclipse
- 编译Android下可执行命令的FFmpeg
- 基于Java Socket的多人在线聊天