2014-11-25 64 views
3

我試圖將格式爲[["bill", 21], ["kevin", 42], ["gail",20]]的列表更改爲{"bill":21, "kevin":42, "gail":20}格式的字典。是否有捷徑可尋?將列表更改爲字典

回答

2
In [2]: l = [['bill', 21], ['kevin', 42], ['gail',20]] 

In [3]: d = dict(l) 
In [4]: d 
Out[4]: {'gail': 20, 'bill': 21, 'kevin': 42} 
+0

謝謝,但我仍然有一個更多的問題 - 你做了什麼工作,但是當我從文件中導入我的列表時,它將數字作爲字符串[['bill','21'],['kevin','42']]放入。所以當我更改字典時,我會得到{'bill':'21','kevin':'42,'gail':'20'}你能想出一種方法將'21'鍵值改爲直21整數? – user3864194 2014-11-25 06:24:11

+0

@ user3864194您可以創建第二個列表,其中包含輸入到dict()的正確值,例如, 'l2 = [[v [0],float(v [1])] for v in l]' – Marcin 2014-11-25 06:39:02

3

構造函數dict()需要2次迭代的迭代。因此,你可以簡單地調用dict您的名單:

In [11]: L = [['bill', 21], ['kevin', 42], ['gail',20]] 

In [12]: dict(L) 
Out[12]: {'bill': 21, 'kevin': 42, 'gail': 20} 
2

要轉換字典值整數使用此代碼:

>>> text=[["bill", '21'], ["kevin", '42'], ["gail",'20']] 
>>> dict([[i,int(j)] for i,j in text]) 
{'bill': 21, 'kevin': 42, 'gail': 20}