如何使用2个键和一个值来创建字典?

时间:2018-08-03 20:25:47

标签: python dictionary data-structures

在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

4 个答案:

答案 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)