我能找到的所有例子(在文档等中)都是通过向构造函数传递数据来定义OrderedDicts的。从文档中可以看到:
# regular unsorted dictionary
d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
# dictionary sorted by key
OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
另一方面,可以通过不向构造函数提供参数来初始化OrderedDict,这使得它保持键、值对的添加顺序。
我正在寻找一种类似下面的结构,只是没有“d.items()"。本质上,我要求它记住一个机制,而不提供一个例子,这听起来可能很疯狂。我唯一的选择是通过提供一个带有单个项的首字母“d”(下面)来“破解”这个机制,还是有更好的方法?
OrderedDict(sorted(d.items(), key=lambda t: t[0]))
谢谢大家!
1条答案
按热度按时间oyxsuwqo1#
OrderedDict
只有一个排序算法:插入顺序。无论将项目添加到OrderedDict
的顺序是OrderedDict
的顺序。如果你想要一些其他的方法,你可以写你的
dict
子类,或者只是写一个排序函数,当顺序实际上很重要时,你可以应用它。