Python 中的可迭代对象(Iterable)

Python 中的可迭代对象(iterable)?

Python 中可迭代对象(Iterable)并不是指某种具体的数据类型,它是指存储了元素的一个容器对象,且容器中的元素可以通过 __iter__( ) 方法或 __getitem__( ) 方法进行访问。

可迭代对象(Iterable)满足如下:

[1] >>>> __iter__ 方法的作用是让对象可以用 for … in 循环遍历,而 getitem( ) 方法是让对象可以通过 实例名[index] 的方式访问实例中的元素。这两个方法的目的是 Python 实现一个通用的外部可以访问可迭代对象内部数据的接口。

[2] >>>> 一个可迭代对象是不能独立进行迭代的,Python 中,迭代是通过 for … in 来完成的。凡是可迭代对象都可以直接用 for… in… 循环访问。

[3] >>>> 常见的可迭代对象包括:

  • 集合数据类型,如 list、tuple、dict、set、str 等;
  • 生成器(generator),包括生成器和带 yield 的生成器函数(generator function)

[4] >>>> 如何判断一个对象是可迭代对象呢?可以通过 collections 模块的 Iterable 类型判断,具体判断方法如下:

1
2
3
4
5
6
7
8
9
10
11

from collections import Iterable
my_list = [1, 2, 3, 4]
my_tuple = (1, 2, 3, 4)
my_dict = {'a': 1, 'b':2}
my_set = {1, 2, 3, 4}

print(isinstance(my_list, Iterable)) # True
print(isinstance(my_tuple, Iterable))# True
print(isinstance(my_dict, Iterable)) # True
print(isinstance(my_set, Iterable)) # True

Author

Waldeinsamkeit

Posted on

2018-01-07

Updated on

2022-04-03

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.