回答編集履歴
2
追記
test
CHANGED
@@ -135,3 +135,9 @@
|
|
135
135
|
OrderedDict([('usa', 873), ('uk', 543), ('kenya', 477), ('china', 229), ('japan', 115), ('brazil', 89), ('rossia', 24)])
|
136
136
|
|
137
137
|
```
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
Python3.7以降をご利用の場合は、ただの辞書を使っても挿入順を保証できます。
|
142
|
+
|
143
|
+
逆に3.6以前であればOrderedDictを使うべきでしょう。
|
1
追記
test
CHANGED
@@ -73,3 +73,65 @@
|
|
73
73
|
国名の1文字目(最初の文字が0文字目)の、降順。
|
74
74
|
|
75
75
|
uSa > bRazil > rOssia > uK > cHina > kEnya > jApan
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
解決策
|
80
|
+
|
81
|
+
---
|
82
|
+
|
83
|
+
> またlambdaを使ってどのように記述すれば正しく出力されるのでしょか?
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
dict.itemsを利用してタプルを抜き出し、ソート後辞書に変換します。
|
88
|
+
|
89
|
+
```Python
|
90
|
+
|
91
|
+
import collections
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
dct = {
|
96
|
+
|
97
|
+
"japan": 115,
|
98
|
+
|
99
|
+
"china": 229,
|
100
|
+
|
101
|
+
"brazil": 89,
|
102
|
+
|
103
|
+
"usa": 873,
|
104
|
+
|
105
|
+
"uk": 543,
|
106
|
+
|
107
|
+
"rossia": 24,
|
108
|
+
|
109
|
+
"kenya": 477
|
110
|
+
|
111
|
+
}
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
items_sorted = sorted(dct.items(), key=lambda x: x[1], reverse=True)
|
116
|
+
|
117
|
+
print(items_sorted)
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
sorted_dct = collections.OrderedDict(items_sorted)
|
122
|
+
|
123
|
+
print(sorted_dct)
|
124
|
+
|
125
|
+
```
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/QSMXoPKhSBdlxFEt)
|
130
|
+
|
131
|
+
```
|
132
|
+
|
133
|
+
[('usa', 873), ('uk', 543), ('kenya', 477), ('china', 229), ('japan', 115), ('brazil', 89), ('rossia', 24)]
|
134
|
+
|
135
|
+
OrderedDict([('usa', 873), ('uk', 543), ('kenya', 477), ('china', 229), ('japan', 115), ('brazil', 89), ('rossia', 24)])
|
136
|
+
|
137
|
+
```
|