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

Python如何无需循环提取列表嵌套字典的指定键值

问题解答

完全可以不使用循环实现该需求,你的报错是因为混淆了列表索引规则和字典的取值逻辑,具体说明和解决方法如下:

错误原因分析

  • 列表为0起始索引:你要取的第二个字典对应列表nested2的索引是1,不是2,索引2对应的是第三个字典{'b': 3, 'c': "yes"}
  • 字典取值依赖键名:字典是无序的键值对结构,不能用位置序号取值,必须传入你要查询的键名,你写的[1]对字典来说是查询键为1的值,自然会报KeyError

你之前尝试的代码对应的具体问题:

  • print(nested2[2][1]):先取了第三个字典,又查询这个字典里不存在的键1,报KeyError
  • print([nested2[2]]):把第三个字典包成了新列表输出,所以得到[{'b': 3, 'c': 'yes'}]
  • print([nested2[2][1]]):同样是查询第三个字典的键1,依然报错

正确实现代码

nested2 = [{'a': 1, 'b': 3}, {'a': 5, 'c': 90, 5: 50}, {'b': 3, 'c': "yes"}]
print(nested2[1]['c'])

运行上述代码即可直接输出90,逻辑和你之前学的嵌套列表取值逻辑一致:先按索引取外层列表的元素,再按规则取内层结构的值,只是内层是字典的话要传键名而非位置索引。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:54:03