2016-04-15 13 views
0

辞書のキーで辞書をソートして辞書として返し、リストとして返さないように助けてください。キーでPython辞書をソートしてリストの代わりに辞書を返します

助けがあれば助かります。

+1

A Pythonの辞書には、そう、(それはハッシュマップです)順不同です特定の順序(例えば、 'collections.OrderedDict')で返す場合は、別のデータ型を使用する必要があります。 –

+0

実際に何を達成しようとしていますか?なぜあなたは特定の順序で辞書を必要としますか、なぜ(キー、値)ペアのリストがあなたのために働かないのですか? –

+0

'{1:['1'、 '2'、 '3']、4:['5'、 '6'、 '7']、2: '10'、 '11']} ' これに: '{1:[' 1 '、' 2 '、' 3 ']、2:[' 10 '、' 11 ']、4: '5'、 '6'、 '7'}} ' – kebb

答えて

0

コメントに示唆されている順序付き辞書を使用するだけで、辞書に入力された項目の順序を返すことができます。

しかし、あなたが本当にソートされていない辞書を取ると、注文した辞書に変換する必要がある場合:(これはキーでソートされたと仮定した場合)

from collections import OrderedDict 
my_dict = {1:['1', '2', '3'], 4: ['5', '6', '7'], 2: ['10', '11']} 

new_dict = OrderedDict((k, v) for k, v in sorted(my_dict.items(), key=lambda x: x[0])) 
print(new_dict) 
+0

これは不必要に冗長です。単純に 'OrderedDict(sorted(myd_dict.items()))'はそのトリックを行います。 (上にリンクされた複製には同じ回答が既に存在するため、編集する必要はありません)。 –

関連する問題