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

Python如何获取嵌套字典列表中所有key为value的字符串最大长度

修正后的函数实现

你原有的代码没有提取字典中key为value的字段,也没有处理嵌套在子列表中的字典,因此无法得到正确结果。

def checkLenFromConfigs(self, configs):
    def collect_value_lengths(data):
        lengths = []
        # 处理列表类型输入
        if isinstance(data, list):
            for item in data:
                lengths.extend(collect_value_lengths(item))
        # 处理字典类型输入
        elif isinstance(data, dict):
            # 收集当前字典中value键对应的字符串长度
            if 'value' in data and isinstance(data['value'], str):
                lengths.append(len(data['value']))
            # 递归处理字典中所有可能嵌套的列表/字典结构
            for v in data.values():
                if isinstance(v, (list, dict)):
                    lengths.extend(collect_value_lengths(v))
        return lengths
    
    all_lengths = collect_value_lengths(configs)
    return max(all_lengths) if all_lengths else 0

逻辑说明

  • 内置递归函数collect_value_lengths,可自动适配任意层级的列表、字典嵌套结构,不会漏抓任何位置的value字段
  • 增加了字符串类型校验,避免非字符串类型取长度时报错,鲁棒性更强
  • 先收集所有符合要求的value字符串长度,最后返回最大值,无符合条件的字符串时默认返回0

示例测试结果

用你提供的示例数据运行函数,会收集到4个value字符串的长度:

  • 'titel{TM} D3' 长度12
  • '24V max 2.5A' 长度12
  • '30V max 3A' 长度10
  • 'none' 长度4
    最终返回最长值12。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:15:03