【パイソン】ソート辞書スキルの鍵(キー)または値(値)によって

要約すると、以下の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()この方法は、タプルがキーと値の辞書を含んで取得した後、無名関数を使用lambdai[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)]
149元記事公開 ウォンの賞賛518 ビューに46万+を

おすすめ

転載: blog.csdn.net/qq_36759224/article/details/104378484