python 迭代器

# 迭代器


# 迭代==再上一个版本的基础上,在更新一个版本

# 可迭代对象
# 以直接作用于for循环的数据类型有以下几种:
# 一类是集合数据类型: 如 list 、tuple、dict、set、str等
# 一类是generator,包括生成器和带yield的generator function。
# 这些可以直接作用于for循环的对象统称为可迭代对象: Iterable

for a in "abc":
print(a)

for temp in [11,22,33,44,55]:
print(temp)


#

a = [x for x in range(10)]


# 生成器
b = (x for x in range(10)) #迭代器

 

# 如判断是否可以迭代
from collections import Iterator

isinstance("abc",Iterator) #True
isinstance([],Iterator) #False
isinstance({},Iterator) #True
isinstance(100,Iterator) #False


# >>> a = [11,22,33,44]
# >>> next(a)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: 'list' object is not an iterator


# 迭代器一定一个迭代,生成器一定是迭代器


# iter()函数   == 用来生成迭代器

a = [11,22,33]
type(a) #list
# 把list转换为可迭代对象
b = iter(a)
next(b)
# 列表占用的空间大,生成器的占用空间小。

posted @ 2018-08-08 10:44  红尘陌上,独自行走  阅读(82)  评论(0编辑  收藏  举报