如何判断一个对象是否可迭代?
2019-03-23 08:57
2351 查看
如何判断一个对象是否可迭代?
什么是迭代?
答:for循环就是迭代
什么是迭代对象?
答:可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
注意,列表不是可迭代对象,生成器是迭代器,迭代器不一定是生成器
即:生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
如何判断对象是否能迭代?
方法一:能用for循环遍历的对象就是可迭代对象
方法二:正规方法–>from collections import Iterable
比如: isinstance(“abc”,Iterable) return True
isinstance([],Iterable) return True 表明列表是可迭代的
注意区分参数 Iterable与Iterator :
from collections import Iterator
isinstance([],Iterator) return False 表明列表不是迭代对象、
把list、dict、str等Iterable变成Iterator可使用iter()函数
isinstance( iter( [] ) , Iterator ) return True
相关文章推荐
- Velocity学习--如何判断一个对象是否为空(null)
- 【Python-2.7】如何判断对象是否为可迭代?
- js如何判断一个对象{}是否为空对象,没有任何属性
- 如何判断一个对象是否含有属性
- js如何判断一个对象{}是否为空对象,没有任何属性
- 如何判断一个C++对象是否在堆栈上
- 虚拟机是如何判断一个对象是否需要回收
- 如何判断一个对象的内容是否为空
- 如何判断一个js对象是否一个DOM对象
- 如何判断一个对象是否是基本类型的Wrapper
- 如何用创建命名对象来判断应用程序是否已有一个实例在运行?
- 如何判断一个对象是否为jquery对象
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- 如何判断一个C++对象是否在堆上
- VBA如何判断一个对象是否为空
- js如何判断一个对象{}是否为空对象,没有任何属性
- 如何判断一个对象是否是可调用对象
- jquery和js如何判断一个对象是否存在
- JavaScript 如何判断一个对象{}是否为空对象
- JVM如何判断一个Java对象是否可以回收