要約すると、以下の4つのケースに分けます:
- ソートキーに従い、すべてのキーの後、唯一の出力順序:I.
- すべての値は唯一のソート値の出力に応じてソートされています。シナリオ2
- すべてのキーと同時に順序、ソート出力に応じてキー値を対応する:3例
- 4例:値によって命じ、同時にすべてのソート・キーの出力および対応する値の
ソートキーに従い、すべてのキーの後、唯一の出力順序:I. |
直接使用するsorted()
辞書のキーをソートする方法を、デフォルトは
>>> dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
>>> print(sorted(dict))
['a', 'b', 'c', 'd']
別の方法としては、使用することができますdict.keys()
辞書を取るためにキーを、次に使用sorted()
ソートする方法を
>>> dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}
>>> print(sorted(dict.keys()))
['a', 'b', 'c', 'd']
それは降順である場合、上記の方法は、大規模な順序に小さい場合、追加reverse=True
に
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.keys(), reverse=True))
['d', 'c', 'b', 'a']
すべての値は唯一のソート値の出力に応じてソートされています。シナリオ2 |
最初のdict.values()
値は辞書をとり、その後、使用sorted()
ソートする方法を
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.values()))
[1, 2, 3, 4]
それは降順にソートされている場合も同様に、追加reverse=True
に
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.values(), reverse=True))
[4, 3, 2, 1]
すべてのキーと同時に順序、ソート出力に応じてキー値を対応する:3例 |
方法:dict.items()
この方法は、タプルがキーと値の辞書を含んで取得した後、無名関数を使用lambda
、i[0]
辞書のキーを表しを
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.items(), key=lambda i: i[0]))
[('a', 2), ('b', 1), ('c', 4), ('d', 3)]
オプション2:operator
モジュールitemgetter
の機能、itemgetter(0)
辞書のキーを表し、
>>> from operator import itemgetter
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.items(), key=itemgetter(0)))
[('a', 2), ('b', 1), ('c', 4), ('d', 3)]
itemgetter
どの次元データ、通し番号数の目的関数を得るために使用されるパラメータは、以下に示します:
>>> import operator
>>>
>>> a = [1, 2, 3, 4]
>>> b = operator.itemgetter(0) # 定义函数b,获取对象的第0个域的值
>>> print(b(a))
1
>>> b = operator.itemgetter(0, 1) # 定义函数b,获取对象的第0个和第1个域的值
>>> print(b(a))
(1, 2)
4例:値によって命じ、同時にすべてのソート・キーの出力および対応する値の |
方法1:3に類似のみ必要な場合にするi[0]
変更するi[1]
には
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.items(), key=lambda i: i[1]))
[('b', 1), ('a', 2), ('d', 3), ('c', 4)]
方法2:するには、3つの類似しただけで必要な場合にitemgetter(0)
変更することitemgetter(1)
に
>>> from operator import itemgetter
>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}
>>> print(sorted(dict.items(), key=itemgetter(0)))
[('a', 2), ('b', 1), ('c', 4), ('d', 3)]