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

如何从字典数组中提取所有key3对应的值?排查代码问题

提取字典数组中指定键的对应值

我有如下字典数组:

NameList = [
    {"key1": a, "key2": b, "key3": c},
    {"key1": d, "key3": e, "key2": f},
    {"key3": g, "key1": h, "key2": i},
    {"key2": j, "key1": k, "key3": l},
]

需要创建新数组,仅存储每个字典中key3对应的数值。

我尝试了以下代码(运行时出现语法错误):

finalarray=[]
for item in NameList:
    for item2 in item:
          if item2[0] == 'key3':
              finalarray.append(item2[0])

改用这段代码后:

finalarray=[]
for item in NameList:
    for item2 in item:
          finalarray.append(item2)

得到的结果是finalarray = ['key1', 'key2', 'key3' ...],并非我需要的key3对应值。


正确解法

方法1:基础循环取值

字典支持直接通过键名获取对应值,不需要嵌套遍历所有键,直接对每个字典执行item['key3']即可拿到目标值:

finalarray = []
for item in NameList:
    finalarray.append(item['key3'])

运行后finalarray会是[c, e, g, l],完全符合需求。

方法2:列表推导式(简洁写法)

Python中可以用列表推导式一行完成,逻辑和上面的循环完全一致:

finalarray = [item['key3'] for item in NameList]

错误原因说明

  • 第一次代码错误:遍历字典时,item2是字典的键名(比如'key1'),你用item2[0]取的是字符串的第一个字符(比如'k'),和'key3'比较逻辑错误;就算判断成立,append的是字符'k'而非对应的值,完全偏离需求。
  • 第二次代码错误:遍历字典的键名并直接append到数组,自然得到的是所有键名的列表,而非key3对应的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:17:21