迭代器

# 1.迭代器
#
# *******************************
# 首先,明确概念,迭代就是循环
#
# 可迭代对象包含1.迭代器,2.序列,3.字典。而生成器是一种特殊的迭代器。
# *******************************
#
# 什么是迭代器?????
#
# 迭代器是访问可迭代对象的工具。这个工具也是一个对象
#
# 迭代器怎么来????
#
# 1.将可迭代对象用iter()方法返回得到一个对象
# 2.这个对象可以用next()访问原来可迭代对象的数据
# 那么这个对象就是迭代器
#
# 迭代器是一种支持next()操作的对象。它包含了一组元素,当执行next()操作时,返回其中一个元素。
# 当所有元素都被返回后,再执行next()报异常—StopIteration
#
# 迭代器与可迭代器的区别????
# 1.迭代器在python中相当于一组数据流,我们不知道他的长度,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误
# 2.迭代器的计算是惰性的,只有在需要返回的时候才会计算。他可以表示一个无穷大的数据流,而list不可能存储所有自然数


for x in [1, 2, 3, 4, 5]:
print(x)
#实际上完全等价于

# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
try:
# 获得下一个值:
x = next(it)
print(x)
except StopIteration:
# 遇到StopIteration就退出循环
break

 

#迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,
#按需使用,从而提高开发体验和运行效率,以至于在Python 3中map,filter等操作返回的不再是列表而是迭代器。

 

# from collections import Iterator # 迭代器
# from collections import Iterable # 可迭代对象
# s='hello'
# print(isinstance(s, Iterator)) # 判断是不是迭代器
# print(isinstance(s, Iterable)) # 判断是不是可迭代对象

posted @ 2021-11-25 23:36  我的博客16000  阅读(54)  评论(0编辑  收藏  举报