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

如何获取字典中键对应值的长度?现有Python代码问题求助

如何获取字典中键对应值的目标长度

你的代码存在两个核心问题,导致无法得到预期输出:

  1. 循环中错误地对键字符串操作,而非键对应的字典值
  2. 用append添加了嵌套列表,导致值的列表结构不符合预期

修正方案一:调整元素添加方式(推荐)

如果你的需求是直接将元素存入字典的值列表,而非嵌套存储,将append替换为extend(或直接初始化时赋值),再通过len(keys[key])获取值列表的长度:

keys = { 
    'id':[],
    'name': [],
    'adress': [],
}

# 使用extend将列表元素逐个添加,而非append整个列表
keys['id'].extend([1, 2, 3])
keys['name'].extend(['nm1', 'nm2', 'test3'])
keys['adress'].extend(['adr1', 'adr2'])

for key in keys:
    # 通过keys[key]获取对应值,用len()计算长度
    print(f'{key} : {len(keys[key])}')

或者直接初始化字典时赋值目标列表,更简洁:

keys = { 
    'id': [1, 2, 3],
    'name': ['nm1', 'nm2', 'test3'],
    'adress': ['adr1', 'adr2'],
}

for key in keys:
    print(f'{key} : {len(keys[key])}')

修正方案二:保留嵌套列表结构

如果必须保留当前的嵌套列表结构(即值列表中存储的是子列表),则需要获取值列表中第一个子列表的长度:

keys = { 
    'id':[],
    'name': [],
    'adress': [],
}

keys['id'].append([1, 2, 3])
keys['name'].append(['nm1', 'nm2', 'test3'])
keys['adress'].append(['adr1', 'adr2'])

for key in keys:
    # 取嵌套列表的第一个元素,再计算其长度
    print(f'{key} : {len(keys[key][0])}')

原代码错误说明

  • for key in keys遍历的是字典的键(如'id'这类字符串),key.__len__是字符串的长度方法对象,并非你需要的字典值的长度,正确做法是通过keys[key]获取对应的值
  • 原代码用append将整个列表作为单个元素添加到值列表中,导致keys['id']变成[[1,2,3]],它的长度是1,而非你预期的3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:40:17