所以蟒文檔建議上覆雜的數據類型施加sorted
在使用itemgetter
,attrgetter
,或methodgetter
從operator
模塊。此外,iterators
比大型對象的列表更小且更快。的Python 3.5 OrderedDict:將分類到嵌套字典迭代
因此,我想知道如何在OrderDict
的值上創建iterator
。原因是在OrderDict
我想排序所有的值也是(普通)字典。
對於普通的字典,我們可以跟着這樣做:
sorted(my_dict.itervalues(), key=itemgetter('my_key'))
然而OrderedDict
僅似乎有方法__iter__()
這對OrderedDict
鍵的作用。
那麼我怎樣纔能有效地爲OrderedDict
的價值做一個迭代器。
請注意,我不在尋找列表理解,lambda函數或提取OrderedDict
的相關子鍵(字典(值)內的鍵)值。
例如
sorted (my_dict, key= lambda key: my_dict[key]['my_key'])
例如嵌套:
test = OrderedDict({'a': {'x':1, 'y':2, 'z':3},
'b': {'x':1, 'y':2, 'z':3}
})
如果這真的是Python 3,那麼您不需要'itervalues()',因爲'dict.values()'已經*是可迭代的了。在Python 3中,'dict.itervalues()'*不存在*。 –
@MartijnPieters'OrderedDict.values'類型爲'class odict_values' – SumNeuron
你有OrderedDict的例子嗎? – user312016