teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/11/14 06:37

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -48,4 +48,26 @@
48
48
  "ERTH": 1,
49
49
  "GS": 1
50
50
  }
51
- ```
51
+ ```
52
+
53
+ コメントを受けて
54
+ ---
55
+ ヒントだけ。
56
+ ```Python
57
+ >>> from collections import OrderedDict
58
+ >>>
59
+ >>> hoge = {'foo': 4, 'bar': 6, 'foobar': 7}
60
+ >>> sorted_hoge = OrderedDict()
61
+ >>> for k, v in sorted(hoge.items(), key=lambda x: x[1], reverse=True):
62
+ ... sorted_hoge[k] = v
63
+ ...
64
+ >>> print(sorted_hoge)
65
+ OrderedDict([('foobar', 7), ('bar', 6), ('foo', 4)])
66
+ ```
67
+
68
+ dictのビューに比べ、OrderedDictのビューは一定の順序を保証します。
69
+ 平たく言うと、`.items()`や`.keys()`、`.values()`による値が挿入順になるということです。
70
+
71
+ 適宜リファレンスを見て、理解を深めるようにしてください。
72
+ ・ [Python 標準ライブラリ » 組み込み関数 » sorted](https://docs.python.jp/3/library/functions.html#sorted)
73
+ ・ [Python 標準ライブラリ » データ型 » collections » OrderedDict](https://docs.python.jp/3/library/collections.html#collections.OrderedDict)