迭代器

Posted liuhongshuai

tags:

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

#可迭代 含有__iter__方法
#迭代器 含有__iter__和__next__方法
# Iterable可迭代的
#Iterator迭代器
#查看对象的方法
技术分享图片
#查看对象的方法
# print(dir([]))

#Flase
# print(‘__iter__‘ in dir(bool))
# print(‘__iter__‘ in dir(int))

#True
# print(‘__iter__‘ in dir(str))
# print(‘__iter__‘ in dir(list))
# print(‘__iter__‘ in dir(tuple))
# print(‘__iter__‘ in dir(dict))
# print(‘__iter__‘ in dir(set))
# print(‘__iter__‘ in dir(range))
# print(‘__iter__‘ in dir(enumerate))
# print(‘__iter__‘ in dir(open(‘a.txt‘)))
View Code
#判断是否可迭代 是否为迭代器
技术分享图片
#判断是否可迭代 是否为迭代器
# from collections import Iterable
# from collections import Iterator
# print(isinstance([],Iterable))#True
# print(isinstance([],Iterator))#False
# print(isinstance([].__iter__(),Iterator))#True
View Code
#可迭代对象.__iter__()得到一个迭代器
#可迭代对象可以被for循环
技术分享图片
#可迭代对象可以被for循环
# l=[1,2,3,4]
# for i in l:
#     print(i)

# for i in range(10):
#     print(i)
View Code
#__next__()方法逐个取值
技术分享图片
#__next__()方法逐个取值
l=[1,2,3,4]
l_iter=l.__iter__()
print(l_iter)#得到的是内存地址
print(l_iter.__next__())
print(l_iter.__next__())
print(l_iter.__next__())
print(l_iter.__next__())
print(l_iter.__next__())#StopIteration
View Code
#迭代器的好处
#节省内存空间
#可逐个取值 每个值只能取一次














以上是关于迭代器的主要内容,如果未能解决你的问题,请参考以下文章

五 迭代器生成器

STL迭代器相关的输出迭代器

课时10:迭代器迭代器失效分析

C++迭代器 iterator

C++迭代器 iterator

25Python之迭代器