2014-05-01 67 views

回答

1

不,对于默认选项,您将只有内置字典是而不是订购。如果你确实想要一个有序的词典,你将会有导入模块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)]

1

我怕我不是2.7,所以无法测试,但这应该重新实现a defaultdictOrderedDict开始分类:

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] 
+0

如果我遗漏了任何东西,请在评论中告诉我,因为我无法测试它 – mhlester