Python内置可迭代对象类型主要包括以下五类,均支持通过iter()
函数转换为迭代器:
-
序列类型
- 包括列表(list)、元组(tuple)、字符串(str)、字典(dict)和集合(set)。这些类型通过
iter()
返回迭代器,支持逐个访问元素。
- 包括列表(list)、元组(tuple)、字符串(str)、字典(dict)和集合(set)。这些类型通过
-
文件对象
- 通过
open()
函数打开的文件对象可迭代,用于逐行读取文件内容。
- 通过
-
range对象
- 用于生成整数序列,支持
for
循环迭代。range
类本身实现了__iter__
方法,返回自身作为迭代器。
- 用于生成整数序列,支持
-
frozenset
- 不可变集合类型,支持迭代。与普通集合(set)类似,但元素不可修改。
判断可迭代性 :
-
使用
isinstance(obj, collections.abc.Iterable)
或iter(obj)
尝试转换,若无__iter__
方法则不可迭代。 -
自定义对象需实现
__iter__
方法才能成为可迭代对象。