正在修复类型错误:“…”类型的对象没有长度

2024-09-27 22:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码。在

def areSimilar(item1,item2):
    if(len(item1) == len(item2)):
        for i in range(len(item1)):
            if isinstance(item1[i],list) and isinstance(item2[i],list):
                if areSimilar(item1[i],item2[i])==False:
                    return False

            else:
                if type(item1[i]) != type(item2[i]):
                    return False

    else:
        return False
    return True

以下是想要工作的例子。在

^{pr2}$

除了前两个以外,其他的都有用。我在哪里

"TypeError: object of type 'bool/int' has no len"

我怎么解决这个问题?在


Tags: infalse密码forlenreturnifdef
1条回答
网友
1楼 · 发布于 2024-09-27 22:32:34

只需添加将类型转换为列表的保护。在

def areSimilar(item1,item2):
    if not getattr(item1, '__len__', False):
       item1 = [item1]
    if not getattr(item2, '__len__', False):
       item2 = [item2]
    if(len(item1) == len(item2)):
        for i in range(len(item1)):
            if isinstance(item1[i],list) and isinstance(item2[i],list):
                if areSimilar(item1[i],item2[i])==False:
                    return False

            else:
                if type(item1[i]) != type(item2[i]):
                    return False

    else:
        return False
    return True

然而,解决方案看起来凌乱,整体功能设计需要改变。在

相关问题 更多 >

    热门问题