发布于 2014-05-02 07:41:22
不可以,对于默认选项,您将只有未排序的内置字典。如果您确实需要有序字典,则必须导入模块OrderedDict.
from collections import OrderedDict
>>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])但是,您可以选择创建一个元组列表来保持其顺序。
而不是:
a = {'a': 1, 'b': 2, 'c':3}
您可以这样做:
a = [('a', 1), ('b', 2), ('c', 3)]
发布于 2014-05-02 07:45:56
恐怕我不在2.7上,所以不能测试,但这应该重新实现一个从OrderedDict派生的defaultdict子类
from collections import OrderedDict
class DefaultOrderedDict(OrderedDict):
def __init__(self, default):
self.default = default
def __getitem__(self, x):
try:
return OrderedDict.__getitem__(self, x)
except KeyError:
self[x] = self.default()
return self[x]https://stackoverflow.com/questions/23418507
复制相似问题