如何在Python中检查一个对象是否可迭代?

发布于 2024-10-11 18:31:17 字数 246 浏览 4 评论 0原文

如何检查 Python 对象是否支持迭代,也称为可迭代对象(参见定义

理想情况下,我想要类似于 isiterable(p_object) 返回 True 或 False 的函数(以 isinstance(p_object, type) 为模型)。

How does one check if a Python object supports iteration, a.k.a an iterable object (see definition

Ideally I would like function similar to isiterable(p_object) returning True or False (modelled after isinstance(p_object, type)).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

写给空气的情书 2024-10-18 18:31:17

您可以使用 isinstancecollections.Iterable 进行检查。

>>> from collections.abc import Iterable # for python >= 3.6
>>> l = [1, 2, 3, 4]
>>> isinstance(l, Iterable)
True

注意:自 Python 3.3 起,不推荐使用或导入 'collections' 中的 ABC,而不是从 'collections.abc' 中导入。在 3.9 中它将停止工作。

You can check for this using isinstance and collections.Iterable

>>> from collections.abc import Iterable # for python >= 3.6
>>> l = [1, 2, 3, 4]
>>> isinstance(l, Iterable)
True

Note: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working.

薄情伤 2024-10-18 18:31:17

试试这个代码

def isiterable(p_object):
    try:
        it = iter(p_object)
    except TypeError: 
        return False
    return True

Try this code

def isiterable(p_object):
    try:
        it = iter(p_object)
    except TypeError: 
        return False
    return True
海拔太高太耀眼 2024-10-18 18:31:17

你不“检查”。你假设。

try:
   for var in some_possibly_iterable_object:
       # the real work.
except TypeError:
   # some_possibly_iterable_object was not actually iterable
   # some other real work for non-iterable objects.

请求宽恕比请求许可更容易。

You don't "check". You assume.

try:
   for var in some_possibly_iterable_object:
       # the real work.
except TypeError:
   # some_possibly_iterable_object was not actually iterable
   # some other real work for non-iterable objects.

It's easier to ask forgiveness than to ask permission.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文