ara*_*lar 5 python ordereddictionary python-2.7 python-3.x
我可以找到的所有示例(在文档中等)通过将数据传递给构造函数来定义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)])
Run Code Online (Sandbox Code Playgroud)
另一方面,可以通过不向构造函数提供参数来初始化OrderedDict,这导致它保留添加键,值对的顺序.
我正在寻找一种类似于以下的构造,除了没有"d.items()".从本质上讲,我要求它记住一个机制而不提供一个例子,这可能听起来很疯狂.我唯一选择通过在单个项目中提供初始"d"(下方)来"破解"这个,还是有更好的方法?
OrderedDict(sorted(d.items(), key=lambda t: t[0]))
Run Code Online (Sandbox Code Playgroud)
谢谢!
OrderedDict
只有一种排序算法:插入顺序。项目添加到的顺序OrderedDict
就是其所具有的顺序OrderedDict
。
如果您想要其他方法,您可以编写dict
子类,或者只编写一个排序函数,当顺序实际上很重要时可以应用该函数。