[英]Using an OrderedDict within a dictionary declaration
我有以下相当复杂的数据结构:
temp_dict = {
'a': {
'aardvark': (6,True),
'apple': (3,True)
},
'b':{
'banana': (2,False),
'bobble': (8,True)
}
}
print(temp_dict['a'])
这是一本字典(temp_dict),其中包含另一个字典层(a,b),其中另一个字典层(aardvark,apple)包含元组。
但这会输出: {'apple': (3, True), 'aardvark': (6, True)}
我不在乎a,b的顺序 ; 但是我需要将aardvark, apple
层设置为orderedDict-他们必须记住插入的顺序(永远不会排序)。 所以我尝试了:
temp_dict = {
'a': OrderedDict{
'aardvark': (6,True),
'apple': (3,True)
},
'b':OrderedDict{
'banana': (2,False),
'bobble': (8,True)
}
}
但这只是给我无效的语法。 我该怎么做呢? 我发现的所有示例都未在另一个数据结构中显示OrderedDict的声明。
谢谢
尝试:
temp_dict = {
'a': OrderedDict([
('aardvark', (6,True)),
('apple', (3,True)),
]),
'b':OrderedDict([
('banana', (2,False)),
('bobble', (8,True)),
]),
}
做这个:
temp_dict = {
'a': OrderedDict((
('aardvark', (6,True)),
('apple', (3,True))
)),
'b':OrderedDict((
('banana', (2,False)),
('bobble', (8,True))
))
}
(但也可以考虑切换到使用类。我发现具有超过一层嵌套的字典通常是解决问题的错误方法。)
使用字典初始化OrderedDict
可以确保在初始化后保持插入顺序。
>>> d = OrderedDict({1: 2, 3: 4})
>>> d[5] = 6
d
现在必须是OrderedDict([(1, 2), (3, 4), (5, 6)])
或OrderedDict([(3, 4), (1, 2), (5, 6)])
。
另一方面:
>>> d = OrderedDict([(1, 2), (3, 4)])
>>> d[5] = 6
d
现在只能是OrderedDict([(1, 2), (3, 4), (5, 6)])
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.