Python 迭代器
来自https://www.runoob.com/python3/python3-iterator-generator.html
来自https://www.liaoxuefeng.com/wiki/1016959663602400/1017323698112640
迭代器的特性:
- 迭代是Python最强大的功能之一,是访问集合元素的一种方式。
- 迭代器是一个可以记住遍历的位置的对象。
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
- 迭代器有两个基本的方法:iter() 和 next()。
- 迭代器是惰性的,只有在需要返回下一个数据时它才会计算。当数据流很大时,使用迭代器十分有利,高效且节省内存
- 字符串,列表或元组对象都可用于创建迭代器
-
L = [1, 2, 3, 4] it = iter(L) print(it) # 输出:<list_iterator object at 0x00000000024B9198> print(type(it)) # 输出:<class 'list_iterator'> print(next(it)) # 输出:1 print(next(it)) # 输出:2 T = (5, 6, 7, 8) it_1 = iter(T) print(it_1) # 输出:<tuple_iterator object at 0x00000000024B9208> print(type(it_1)) # 输出:<class 'tuple_iterator'> print(next(it_1)) # 5 print(next(it_1)) # 6 S = "You're really nice" it_2 = iter(S) print(it_2) # 输出:<str_iterator object at 0x00000000024B92E8> print(type(it_2)) # 输出:<class 'str_iterator'> print(next(it_2)) # 输出:Y print(next(it_2)) # 输出:o
- 遍历迭代器
-
# 方法1 L = [1, 2, 3, 4] it = iter(L) # 创建迭代器 for x in it: print(x, end=" ") # 输出:1 2 3 4 # 方法2 import sys L2 = [1, 2, 3, 4] it2 = iter(L2) while True: try: print(next(it2)) except StopIteration: sys.exit()