2016-11-08 15 views
-4

私はそれらを私の出力をdictに変換しようとするときに2つのリストを持っていますランダム誰も助けることができますか?リストをPythonで辞書に変換するにはどうすればいいですか?

a=['abc', 'def', 'ghi', 'jkl', 'mno'] 
b=['', '', ['123', '456', '786', '989'], '', ['222', '888', '111', '333']] 

print(dict(zip(a,b))) 

output: {'def': '', 'ghi': ['123', '456', '786', '989'], 'jkl': '', 'abc': '', 'mno': ['222', '888', '111', '333']} 

what i want is 
{'abc':'', 'def':'', 'ghi':['123', '456', '786', '989'],'jkl':'','mno':['222', '888', '111', '333']} 
+2

これを実行するには、「OrderedDict」が必要です。平易な辞書はPythonで順序付けされていません。 –

+0

辞書は発注されていません。注文が必要な場合(本当ですか?)、 'OrderedDict'を使用してください。 – jonrsharpe

+0

Pythonディクショナリ(Python 3.6より前)は本質的に順序付けられていません。順序を保持したい場合は、 'collections.OrderedDict'を使うか、Python 3.6を使います(それでもまだベータ版です)。 – Duncan

答えて

0

コメントで述べたように、あなたがあなたの辞書内の要素の順序に依存する場合OrderedDictを使用する必要があります。

>>> from collections import OrderedDict 
>>> OrderedDict(zip(a, b)) 
OrderedDict([('abc', ''), ('def', ''), ('ghi', ['123', '456', '786', '989']), ('jkl', ''), ('mno', ['222', '888', '111', '333'])]) 

それは同じ方法でアクセスすることができます通常dict

>>> x = OrderedDict(zip(a, b)) 
>>> x['abc'] 
'' 
関連する問題