[英]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.