首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 2.7.x中的默认有序字典

Python 2.7.x中的默认有序字典
EN

Stack Overflow用户
提问于 2014-05-02 07:39:17
回答 2查看 3.6K关注 0票数 0

除了这个问题中大约3年前的答案:

Can I do an ordered, default dict in Python?

最近的Python版本中是否采用了任何实现?

若否,原因为何?

EN

回答 2

Stack Overflow用户

发布于 2014-05-02 07:41:22

不可以,对于默认选项,您将只有未排序的内置字典。如果您确实需要有序字典,则必须导入模块OrderedDict.

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2014-05-02 07:45:56

恐怕我不在2.7上,所以不能测试,但这应该重新实现一个从OrderedDict派生的defaultdict子类

代码语言:javascript
复制
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]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23418507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档