码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数(十二)-迭代器

时间:2018-02-03 21:54:29      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:列表   迭代   imp   port   div   name   ext   cti   字符串   

字符串,列表,元组,字典,集合,生成器这些能通过for循环来遍历的数据类型都是可迭代对象

可通过isinstance判断是不是可迭代对象

>>> from collections import Iterable
>>> isinstance(‘Python‘, Iterable)
True
>>> isinstance([1,2,3], Iterable)
True
>>> isinstance((1,2,3), Iterable)
True
>>> isinstance({‘name‘:‘John‘,‘age‘:22}, Iterable)
True
>>> isinstance({1,2,3}, Iterable)
True
>>> isinstance((i*2 for i in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False

isinstance也可以判断是不是迭代器

>>> from collections import Iterator
>>> isinstance(‘Python‘, Iterator)
False
>>> isinstance([1,2,3], Iterator)
False
>>> isinstance((1,2,3), Iterator)
False
>>> isinstance({‘name‘:‘John‘,‘age‘:22}, Iterator)
False
>>> isinstance({1,2,3}, Iterator)
False
>>> isinstance((i*2 for i in range(10)), Iterator)
True
>>> isinstance(100, Iterator)
False

可见可迭代对象不一定是迭代器,但迭代器是可迭代对象

如果要把可迭代对象变为迭代器,可以使用iter()方法

>>> from collections import Iterator
>>> isinstance(iter(‘Python‘), Iterator)
True
>>> isinstance(iter([1,2,3]), Iterator)
True
>>> isinstance(iter((1,2,3)), Iterator)
True
>>> isinstance(iter({‘name‘:‘John‘,‘age‘:22}), Iterator)
True
>>> isinstance(iter({1,2,3}), Iterator)
True

迭代器可以用next()方法取数据,跟生成器一样

Python函数(十二)-迭代器

标签:列表   迭代   imp   port   div   name   ext   cti   字符串   

原文地址:https://www.cnblogs.com/sch01ar/p/8410742.html

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