所以我有這樣的對象列表:詞典在Python恆定按鍵字典
['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']
,我想創建詞典的詞典是這樣的:
{
{0: 'bob', 1: 'tob', 2: 'mom'},
{0: 'tom', 1: 'apa'},
{0: 'cat'}
}
什麼pythonic的方式來完成這件事?謝謝!
所以我有這樣的對象列表:詞典在Python恆定按鍵字典
['bob', 'tob', 'mom'], ['tom', 'apa'], ['cat']
,我想創建詞典的詞典是這樣的:
{
{0: 'bob', 1: 'tob', 2: 'mom'},
{0: 'tom', 1: 'apa'},
{0: 'cat'}
}
什麼pythonic的方式來完成這件事?謝謝!
看起來您只是想將list
的list
s轉換爲set
的dict
s,其中索引映射到該值。
那麼,你不能這樣做,因爲set
不能容納不可取的值,如dict
s。但是你可以很容易地將它轉換成那些dicts
的list
。
每個list
可以通過dict(enumerate(l))
轉換成dict
。這給你一個可以用與原始list
完全相同的方式使用的列表(因此d[0]
返回與l[0]
相同的東西),這看起來像你想要的。
要將它們放在一起列表中,只需使用列表理解。
>>> l=[['bob','tob','mom'],['tom','apa'],['cat']]
>>> d=[dict(enumerate(i)) for i in l]
>>> d
[{0: 'bob', 1: 'tob', 2: 'mom'}, {0: 'tom', 1: 'apa'}, {0: 'cat'}]
非常感謝!你理解我這個措辭不佳的問題,並給了我一個完美的答案。好老師! – Mike
index_as_key = dict(enumerate(['bob','tob','mom']))
如果你只是想列表項的索引,而你遍歷列表中,沒有必要創建一箇中間字典:
for i, item in enumerate(['bob','tob','mom']):
# do something
這不是字典的法律詞典:有沒有鍵(例如,'{0:'bob',1:'tob',2:'mom'}'')的鍵是什麼?) –
鍵由數字組成,如目標中所示。你什麼意思? – Mike
'bob'的關鍵是一個數字。 '{0:'bob',1:'tob',2:'mom'}'(也就是* outer * dictionary)的關鍵是什麼? –