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

Python嵌套字典与列表混合结构的取值问题求助

Python嵌套字典与列表混合结构的取值问题求助

我最近在学Python 3.x,大部分内容都挺容易理解的,直到碰到了这种字典和列表嵌套的复杂结构,实在搞不懂它的取值逻辑,希望有人能用大白话给我解释下为什么有的写法可行有的不行。

当然啦,如果有更简洁的写法来实现我想要的功能,我也非常乐意学习!

我的需求很简单:从下面三个字典里提取并打印出this_entry这个值。

dict1 = {'simple':'this_entry'}

dict2 = {'key1':{'key2':'this_entry'}}

dict3 = {'key1':[{'nest_key':['this is harder',['this_entry']]}]}

前两个字典的取值完全没问题:

print(dict1['simple'])
print(dict2['key1']['key2'])

但第三个字典就很棘手了!我一开始试了这种写法:

print(dict3['key1']['nest_key'][1])

直接报错了,错误信息是:

TypeError: list indices must be integers or slices, not str

为了搞懂哪里出问题,我一步步调试:

  • 先打印dict3['key1'],输出是[{'nest_key': ['this is harder', ['this_entry']]}]
  • 但接着用dict3['key1']['nest_key'][1]就直接崩了,就是上面那个错误。

我想知道为什么这里会报错?后来我加了个[0]进去,写法变成这样:

print(dict3['key1'][0]['nest_key'][1])

虽然能运行了,但输出的是['this_entry'],不是我想要的this_entry。

我猜搞懂为什么必须加第一个[0],就能明白怎么正确提取到我要的值了?求大佬帮忙解答,谢谢啦!

备注:内容来源于stack exchange,提问作者Dan Lewis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 10:09:09