迭代的概念
- 迭代:可以用for… in从中依次取出元素的过程,称为遍历,也称为迭代。如对一个list遍历所有元素。
- 可迭代对象: 可以用for… in语句依次取出元素的对象,即可迭代对象,如字符串、元组、列表、字典,不可迭代对象如整数、浮点数、布尔值。
- 判断一个对象是否是可迭代对象:
内置函数isinstance(object,classinfo)可以用来判断可迭代对象。
- object : 实例对象
- classinfo : 类型名,直接或间接类名,或它们组成的元组。
import collections
print(isinstance([1, 2, 3], collections.Iterable))
print(isinstance(123,collections.Iterable))
>>>
True
False
迭代器
概念
- 迭代器(Iterator):指可访问可迭代对象的工具。
- 迭代器函数:
- iter(): 从可迭代对象中返回一个迭代器,其对象必须是一个能提供迭代器ide对象。
- next(): 从迭代器中获取下一条记录,如果无法再获取到下一条记录,却仍然调用next()函数,则抛出StopIteration异常
- 迭代器特点:
- 迭代器只能向前取值,不能倒退或者重置。
- iter()函数返回一个可迭代对象的迭代器。
- 迭代器中的元素只支持查, 不支持增删改
如何写迭代器
ls = [1, 2, 3]
A = iter(ls)
while True:
try:
x = next(A)
print(x)
except StopIteration:
pass
>>>
1
2
3
迭代器益处
- 节省内存空间。
- 遍历迭代器的效率更高。
- 代码更少,运行更快,
- 组合性强,简洁漂亮。