10.5迭代器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10.5迭代器相关的知识,希望对你有一定的参考价值。
迭代器迭代器协议:
满足两个条件:1.有iter方法;2.有next方法
# -*-coding:utf-8 -*-
__date__ = ‘2018/3/18 ‘
__author__ = ‘xiaojiaxin‘
__file_name__ = ‘迭代器‘
#生成器都是迭代器,迭代器不一定是生成器
l=[1,2,3,4]
d=iter(l)
print(d)
# <list_iterator object at 0x000000CB6FC4B1D0>
print(next(d))
for i in d:
print(i)
for循环内部三件事:
1.调用可迭代对象的iter方法,返回一个迭代器对象;
2.调用迭代器的next方法
3.处理StopIteration方法
for i in [1,2,3,4]:
print(i)
# [1,2,3,4]本身没有next方法,是for循环给他做的
from collections import Iterator
from collections import Iterable
print(isinstance([1,2,3,4],list)) #判断是否为指定数据类型
# True
print(isinstance(1,list))
# False
print(isinstance([1,2],Iterable))
# True
print(isinstance([1,2],Iterator))
# False
# [1,2]是可迭代对象,但是不是迭代器
在for 循环里也把文件转换成了迭代器
max1=0
record=0
count=1
with open("hello.txt","r",encoding="utf-8") as f:
for i in f:
if len(i.strip())>max1:
max1=len(i)
record=i
count+=1
print("the longest sentence is %s,it is the %d line,It has %d words"%(record,count,max1))
大家对内容有任何问题,欢迎留言,一定在第一时间解答,谢谢大家!
以上是关于10.5迭代器的主要内容,如果未能解决你的问题,请参考以下文章