读童话的狼

2020-11-24   阅读量: 874

Python

如何判断一个对象是可迭代对象呢?

扫码加入数据分析学习群

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

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

(2)一个可迭代对象是不能独立进行迭代的,Python中,迭代是通过for ... in来完成的。凡是可迭代对象都可以直接用for… in…循环访问,这个语句其实做了两件事:第一件事是调用__iter__()获得一个可迭代器,第二件事是循环调用__next__()。

常见的可迭代对象包括:

a.集合数据类型,如list、tuple、dict、set、str等;

b.生成器(generator),包括生成器和带yield的生成器函数(generator function)。


在Python中,我们把所有可以迭代的对象统称为可迭代对象,有一个类专门与之对应:Iterable。所以,要判断一个类是否可迭代,只要判断是否是Iterable类的实例即可。

>>> from collections import Iterable

>>> isinstance(123, Iterable)

False

>>> isinstance(True, Iterable)

False

>>> isinstance('abc', Iterable)

True

>>> isinstance([], Iterable)

True

>>> isinstance({}, Iterable)

True

>>> isinstance((), Iterable)

True

所以,整型、布尔不可迭代,字符串、列表、字典、元组可迭代。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
38.5642 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子