簡體   English   中英

如何用2個鍵和1個值創建字典?

[英]How to create dict with 2 keys and one value?

在python中,我可以將dictionary定義為:

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

您可以在collections模塊( 此處的文檔 )中使用defaultdict

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}

您可以使用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'] = {}進行分配后手動進行操作。

這不是一個dict ; 這是一個dict ,它有其他dict S作為值。

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

您需要創建嵌套的字典:

d = {'a1': {'b1': 1, 'b2': 2}, 'a2': {'b1': 3, 'b2': 4}}

然后:

for k, v in d['a1'].items():
    print(k, v)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM