You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计算含数字和字符串的嵌套列表各元素长度时报int无len()错误如何解决

报错原因

原代码直接遍历列表lst的所有元素,当遍历到第二个元素1(int整数类型)时,整数类型没有内置的len()计算长度的方法,因此触发TypeError。
同时原逻辑没有做类型判断,对第一个字符串元素'spam!'调用len()会返回5,和你期望的第一个输出1不符,需要补充类型判断规则。

调整方案

你期望的输出1 1 3 3符合「如果元素是列表类型则返回列表长度,其余类型统一返回1」的规则,调整后的代码如下:

lst = ['spam!', 1, ['Brie', 'Roquefort', 'Pol lê Veq'], [1, 2, 3]]

for item in lst:
    # 判断元素是否为列表类型
    if isinstance(item, list):
        print(len(item), end=' ')
    else:
        print(1, end=' ')

运行后就会输出空格分隔的1 1 3 3,符合需求。

内容的提问来源于stack exchange,提问作者dfcb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:06:05