在python中,我可以将字典定义为:
d = {}
并将数据存储为:
d['a1'] = 1
如何存储2个密钥?
d['a1']['b1'] = 1
d['a1']['b2'] = 2
d['a2']['b1'] = 3
d['a2']['b2'] = 4
,然后打印所有键和值,例如d['a1']
将会是:
b1 -> 1
b2 -> 2
答案 0 :(得分:1)
您可以从defaultdict
模块(docs here)中使用collections
:
from collections import defaultdict
d = defaultdict(dict)
d['a1']['b1'] = 1
d['a1']['b2'] = 2
d['a2']['b1'] = 3
d['a2']['b2'] = 4
print(d['a1'])
打印:
{'b1': 1, 'b2': 2}
答案 1 :(得分:1)
您可以使用collections.defaultdict
,但是不能像示例中那样将{int}和dict赋值混合到d['a1']
中。
from collections import defaultdict
d = defaultdict(dict)
d['a1']['b1'] = 1
d['a1']['b2'] = 2
d['a2']['b1'] = 3
d['a2']['b2'] = 4
d['a3'] = 1
print(d['a1'])
print(d['a3'])
>>> {'b1': 1, 'b2': 2}
>>> 1
如果您确实要先为d['a1']
分配1,然后将其更改为字典,则在使用d['a1'] = {}
分配后,您必须手动进行操作。
答案 2 :(得分:0)
那不是一个dict
;这是一个dict
,其中还有其他dict
个值。
d['a1'] = {'b1': 1}
d['a1'] = {'b2': 2}
d['a2'] = {'b1': 3}
d['a2'] = {'b2': 4}
从那里,您可以像处理任何其他值一样使用每个嵌套的dict
。例如
for k1, v1 in d.items():
for k2, v2 in v1.items():
print("{} -> {} -> {}".format(k1, k2, v2))
答案 3 :(得分:0)
您需要创建嵌套的字典:
d = {'a1': {'b1': 1, 'b2': 2}, 'a2': {'b1': 3, 'b2': 4}}
然后:
for k, v in d['a1'].items():
print(k, v)