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

Python使用双层for循环遍历字典列表时无法获取对应值问题

问题排查与解决方案

问题原因

  • 遍历逻辑错误:Python中直接遍历字典对象时,默认仅返回字典的键,因此你代码中append(row)实际存入的全是Animal1、Animal2这类键名,没有获取到对应的动物值。同时你初始化new_data为列表类型,和你预期的字典类型不匹配。
  • 预期输出逻辑不符合Python语法规则:Python字典不允许存在重复键,如果强制按照你给出的预期结构构造字典,前面重复键对应的值会被后续值覆盖,最终仅会保留最后一组键值对{"Animal1": "rabbit", "Animal2": "sheep", "Animal3": "wolf"},无法实现保留所有数据的效果。

可行实现方案

方案1:收集所有动物值为列表

new_data = []
for rows in data:
    # 调用.values()方法遍历字典的值
    for val in rows.values():
        new_data.append(val)

print(new_data)

输出结果:

['Dog', 'Cat', 'Snake', 'Mouse', 'Ant', 'Chicken', 'Fish', 'Elephant', 'Fox', 'rabbit', 'sheep', 'wolf']

方案2:按动物类别汇总所有值为字典

new_data = {"Animal1": [], "Animal2": [], "Animal3": []}
for rows in data:
    # 调用.items()方法同时遍历键和值
    for key, val in rows.items():
        new_data[key].append(val)

print(new_data)

输出结果:

{
    "Animal1": ["Dog", "Mouse", "Fish", "rabbit"],
    "Animal2": ["Cat", "Ant", "Elephant", "sheep"],
    "Animal3": ["Snake", "Chicken", "Fox", "wolf"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:24:00