编程语言
首页 > 编程语言> > 如何修改Python’默认’字典,使其始终返回默认值

如何修改Python’默认’字典,使其始终返回默认值

作者:互联网

我正在使用它们来打印数据包中指定的IANA值的名称.因此,所有字典都具有相同的默认值“RESERVED”.

我不想使用d.get(键,默认)但是通过d [key]访问字典,这样如果键不在d中,它将返回默认值(对于所有字典都是相同的).

我不一定需要使用字典,但它们是直观的选择……
还有,我可以做到这一点的字典

d = {
   1..16 = "RESERVED",
   17 : "Foo",
   18 : "Bar,
   19..255: "INVALID"
  }

将是首选的解决方案

元组可能是另一种选择,但是我很容易抵消分配值的错误……(而且我的代码不会是“人类可读的”)

哦,是的,Python 2.4

解决方法:

如果可以,请使用Mario’s solution.

如果你不能,你只需要子类化类字典对象.现在,您可以通过直接从“dict”继承来实现,它将是快速有效的.对于不能从“dict”继承的旧Python版本,有“UserDict”,一个纯Python字典实现.

有了它,你会这样做:

#!/usr/bin/env python
# -*- coding= UTF-8 -*-

import UserDict

class DefaultDict(UserDict.UserDict) :

    default_value = 'RESERVED'

    def __getitem__(self, key) :
        return self.data.get(key, DefaultDict.default_value)


d = DefaultDict()
d["yes"] = True;
print d["yes"]
print d["no"]

请记住,“UserDict”比“dict”慢.

标签:python,dictionary,python-2-4
来源: https://codeday.me/bug/20190715/1464040.html