当我们遇到一个新的对象想判断它是否为可迭代(Iterable)对象时,需要用到isinstance()
方法判断。
判断代码为:
from collections.abc import Iterable
a = [1, 2, 3]
b = 'abc'
c = {'name': 'Tom', 'age': 18}
print(isinstance(a, Iterable)) # True
print(isinstance(b, Iterable)) # True
print(isinstance(c, Iterable)) # True
上面代码中,我们使用了collections.abc
中的Iterable
抽象类来确定对象是否为可迭代对象。
但需要注意的是:python中有些对象虽然可以循环遍历,但却不是真正的可迭代对象,如下面的例子所示:
d = 123
print(isinstance(d, Iterable)) # False
此时,可以使用iter()
方法将对象转化为一个可迭代对象,如下所示:
e = iter(d)
print(isinstance(e, Iterable)) # True
除了以上方法,我们还可以使用try...except语句捕捉TypeError
异常,如果捕捉到该异常则表示对象不可迭代。
f = 1
try:
iter(f)
print(True)
except TypeError:
print(False)
上面的代码中,因为整数f
不是可迭代对象,所以捕捉到了TypeError
异常并输出了False。
在日常开发中,我们需要经常判断对象是否为可迭代对象,以上两种方法都可以完成该任务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python迭代器Iterable判断方法解析 - Python技术站