如何在 Python 中检查对象是否可迭代?
可迭代对象是可以使用循环或可迭代函数遍历其所有元素的对象。列表、字符串、字典、元组等都被称为可迭代对象。
在 Python 语言中,有多种方法可以检查对象是否可迭代。让我们一一来看。
使用循环
在 Python 中,我们有两种循环技术,一种是使用“for”循环,另一种是使用“while”循环。使用这两种循环中的任何一种,我们都可以检查给定的对象是否可迭代。
示例
在这个示例中,我们将尝试使用“for”循环迭代一个对象,并检查它是否被迭代。以下是代码。
l = ["apple",22,"orange",34,"abc",0.3] try: for i in l: print(i) print("Given object is iterable") except TypeError: print("Given object is not iterable")
输出
apple 22 orange 34 abc 0.3 Given object is iterable
示例
让我们再看一个示例,以检查给定的对象是否使用 for 循环可迭代。
integer = 23454 try: for i in integer: print(i) print("Given object is iterable") except TypeError: print("Given object is not iterable")
输出
以下是代码的输出,该代码检查给定的对象是否可迭代。
Given object is not iterable
使用 iter() 方法
我们在 Python 中有一个名为 iter() 的函数,它可以检查给定的对象是否可迭代。
示例
在这个示例中,我们将要迭代的对象和 iter 类传递给 hasattr() 函数。然后,使用 iter() 方法检查对象是否被迭代。
integer = 23454 if hasattr(integer, '__iter__'): my_iter = iter(integer) print("Given object is iterable") else: print("Given object is not iterable")
输出
Given object is not iterable
使用 collections.abc 模块
在 Python 中,collections.abc 模块提供了一个名为 Iterable 的抽象类,可用于检查对象是否可迭代。
示例
这里,当我们想要检查给定的对象是否可迭代时,必须将对象和“Iterable”抽象类作为参数传递给 isinstance() 函数。
from collections.abc import Iterable integer = 23454 if isinstance(integer, Iterable): print("Given object is iterable") else: print("Given object is not iterable")
输出
以下是生成的输出 -
Given object is not iterable
示例
让我们再看一个示例,以检查给定的对象是否可迭代。
from collections.abc import Iterable dic = {"name":["Java","Python","C","COBAL"],"Strength":[10,200,40,50,3]} if isinstance(dic, Iterable): print("Given object is iterable") else: print("Given object is not iterable")
输出
上面程序的输出显示为 -
Given object is iterable
使用 try 和 except
我们在 Python 中有“try”和“except”,它们处理任何发生的错误。这些还可以检查给定的对象是否可迭代。
示例
这是一个示例,它使用 iter() 函数以及 try 和 except 检查给定的对象是否可迭代。
dic = {"name":["Java","Python","C","COBAL"],"Strength":[10,200,40,50,3]} try: iter(dic) print('Given object is iterable') except TypeError: print('Given object is not iterable')
输出
Given object is iterable
广告