通过Python中嵌套字典的最新索引获取值

时间:2015-01-03 20:15:16

标签: python dictionary nested ordereddictionary

如果我不知道所有密钥,如何通过嵌套字典的最新密钥获取值?

例如:

dict = { students: { id1: value1, id2: value2, id3: value3} , lecturers: {}}
>>> dict[id2]
value2

另外,如果我想通过只写dict [id2]来改变或删除dict [学生] [id2] ......

1 个答案:

答案 0 :(得分:1)

正如评论中提到的那样,' dict'是python中的一个特殊单词,不应该作为变量名重用,因为它可能导致冲突和奇怪的行为。

此处值得记住的是,python中的词典不必(必然)保留其命令。 From the docs:

  

最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。

你所做的是嵌套字典,所以第一个字典(关键字:学生)将返回第二个字典(带有各种ID等)。值得注意的是,除非你&# 39;在其他地方为学生分配了一个值,你不能用它作为一个键,它需要是一个字符串,元组或数字。

所以 - 如果你的意思是'最深的'然后你需要使用结构:

dictionary_name['top_key']访问嵌套词典,然后是第二个键,给你一些看起来像dictionary_name['students']['id1']的东西(注意这里的引号围绕着键名!)

如果您的意思是最新的'如同最近添加的',那么您需要使用不同的结构,like OrderedDict.我已将其拆分,以便您可以看到如何更新字典,后者是后者问题!

from collections import OrderedDict
dictionary_name = OrderedDict()
dictionary_name.update({"student" : {} })