我用它们来打印一个包中分配的IANA值的名称。所以所有的字典都有相同的默认值“RESERVED”。
我不想使用d.get(key,default)
,而是通过d[key]
访问字典,这样,如果键不在d中,它将返回默认值(这对所有字典都一样)。
我不一定要用字典,但它们是直觉的选择。。。 还有,一本字典,我可以在那里做这个
d = {
1..16 = "RESERVED",
17 : "Foo",
18 : "Bar,
19..255: "INVALID"
}
将是首选解决方案
元组可能是另一种选择,但是我很容易在赋值时出现偏移错误。。。(我的代码不会是“人类可读的”)
哦,是的,Python 2.4
如果可以,请使用Mario's solution。
如果你不能,你只需要给一个类似字典的对象子类。现在,您可以直接从“dict”继承它,它将是快速和高效的。对于不能从“dict”继承的旧Python版本,有一个纯Python字典实现“UserDict”。
有了它,你会这样做:
记住“UserDict”比“dict”慢。
您可以使用以下类(在Python2.7中测试) 只需将0更改为您喜欢的任何默认值。
如果您可以迁移到Python2.5,那么会有defaultdict类,如here。您可以传递给它一个初始值设定项,它返回您想要的内容。否则,恐怕你得自己动手了。
相关问题 更多 >
编程相关推荐