如何修改Python’默认’字典,使其始终返回默认值
发布时间:2020-12-20 12:25:18 所属栏目:Python 来源:网络整理
导读:我正在使用它们来打印数据包中指定的IANA值的名称.因此,所有字典都具有相同的默认值“RESERVED”. 我不想使用d.get(键,默认)但是通过d [key]访问字典,这样如果键不在d中,它将返回默认值(对于所有字典都是相同的). 我不一定需要使用字典,但它们是直观的选择…
|
我正在使用它们来打印数据包中指定的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”慢. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
