码迷,mamicode.com
首页 > 其他好文 > 详细

迭代器

时间:2018-09-02 11:10:57      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:rabl   内存   __iter__   none   div   iter   dir   port   isp   

#可迭代 含有__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
#迭代器的好处
#节省内存空间
#可逐个取值 每个值只能取一次




迭代器

标签:rabl   内存   __iter__   none   div   iter   dir   port   isp   

原文地址:https://www.cnblogs.com/liuhongshuai/p/9572912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!