我需要一个python中的容器,我可以像这样访问/或类似于
map = buildMap()
versionA = map['A'].version
osA = map['A'].os
versionB = map['B'].version
osB = map['B'].os
在python中有这样的东西(从2.7及以下)?
答案 0 :(得分:4)
您可以创建一个类和一个字典,您可以使用键字符串映射类的实例,例如
class OSMap(object):
def __init__(self, os = "", version = ""):
self.os = os
self.version = version
os_map = dict()
os_map["A"] = OSMap("Windows", "7")
os_map["B"] = OSMap("Ubuntu", "13.10")
print os_map["A"].version, os_map["A"].os
print os_map["B"].version, os_map["B"].os
<强>输出强>
7 Windows
13.10 Ubuntu
或者,您可以使用collections.namedtuple
,就像这样
from collections import namedtuple
OSMap = namedtuple("OSMap", ("os", "version"))
os_map = dict()
os_map["A"] = OSMap("Windows", "7")
os_map["B"] = OSMap("Ubuntu", "13.10")
print os_map["A"].version, os_map["A"].os
print os_map["B"].version, os_map["B"].os
注意: namedtuple
对象以后无法更改,因为它们来自tuple
。
答案 1 :(得分:0)
嗯,你有dict
做你想要的。
my_map = dict()
my_map['A'] = {'os': 'osa'}
my_map['B'] = {'os': 'osb'}
这是一本字典,其值本身就是字典。