2011-07-07 8 views
0

配列から辞書を取り込む必要があります。私は3行でやったことがありますが、できるだけ短くしようとしています。それを1行に取り込む方法はありますか?Pythonの配列からの辞書のオンライン集団

a = [['test',154],['test2',256]] 
d = dict() 
for b in a: 
    d[b[0]] = b[1] 

答えて

13

だけdict :)

>>> a = [['test',154],['test2',256]] 
>>> dict(a) 
{'test': 154, 'test2': 256} 
4

dict(a)またはdict([['test'、154]、['test2'、256]])を実行するだけです。

+0

うわー、それはとても簡単です – kravemir

-1

L = [ 'テスト'、154]、[ 'TEST2'、256]のPython 3.xでは

d = {k:v for k,v in L} 
Pythonの2.xで

d = dict([(k,v) for k,v in L]) 
+0

なぜこれが悪いのですか? – kravemir

+0

これは他のものと比較して貧弱な解決策です(2番目の方法は個々のリストをタプルに変更するだけです)。また、*はどちらの場合でも構文エラーです(ただドロップするだけです)。ディクショナリの理解はまた、 '、'ではなく ':'で要素を区切ります。 –

+0

@スティーブ:そうです。私はバグを修正した – inspectorG4dget

関連する問題