是否可以在Python中使用预定义的排序机制初始化一个空的OrderedDict?

5fjcxozz  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(108)

我能找到的所有例子(在文档等中)都是通过向构造函数传递数据来定义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]))

谢谢大家!

oyxsuwqo

oyxsuwqo1#

OrderedDict只有一个排序算法:插入顺序。无论将项目添加到OrderedDict的顺序是OrderedDict的顺序。
如果你想要一些其他的方法,你可以写你的dict子类,或者只是写一个排序函数,当顺序实际上很重要时,你可以应用它。

相关问题