パイソン | Python 辞書をキーまたは値で並べ替える

Python 辞書には、キーと値という 2 つの要素があります。キー、値、またはその両方で辞書を並べ替えることができます。この記事では、キーまたは値で辞書を並べ替える方法について説明します。 パイソン

Pythonで辞書をソートする必要性

データの複雑さを軽減し、クエリをより高速かつ効率的に行うには、データを並べ替える必要があります。大量のデータを扱う場合、並べ替えは非常に重要です。

次のメソッドを使用して、値で辞書を並べ替えることができます。

  • まず、キーをアルファベット順に並べ替えます。 key_value。 iterkeys() 関数。
  • 次に、次のコマンドを使用してキーをアルファベット順に並べ替えます。 ソート済み (key_value) 関数を実行し、それに対応する値を出力します。
  • 3 番目に、値をアルファベット順に並べ替えます。 key_value。 iteritems() 、キー = ラムダ (k, v) : (v, k))

Python 辞書をキーまたは値で並べ替える例

Python で値とキーで辞書を並べ替えるために実行する必要がある主なタスクを次に示します。

  1. を作成します 辞書 そのリストキーをアルファベット順に表示します。
  2. キーと値の両方をキーごとにアルファベット順に並べて表示します。
  3. 最後に、キーと値の両方を値のアルファベット順に並べて表示します。

例 1: 辞書をキーで並べ替える

この例では、辞書をキーでソートし、結果のタイプは辞書になります。

Python3




myDict> => {> 'ravi'> :> 10> ,> 'rajnish'> :> 9> ,> > 'sanjeev'> :> 15> ,> 'yash'> :> 2> ,> 'suraj'> :> 32> }> myKeys> => list> (myDict.keys())> myKeys.sort()> sorted_dict> => {i: myDict[i]> for> i> in> myKeys}> print> (sorted_dict)>

出力

{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2} 

例 2: キーをソート順に表示する

この例では、Python でキーと値によって辞書を並べ替えようとしています。ここで、 iterkeys() は辞書のキーに対する反復子を返します。

Python3




# Function calling> def> dictionary():> > # Declare hash function> > key_value> => {}> # Initializing value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > print> (> 'Task 1:- '> )> > print> (> 'key_value'> , key_value)> > # iterkeys() returns an iterator over the> > # dictionary’s keys.> > for> i> in> sorted> (key_value.keys()):> > print> (i, end> => ' '> )> def> main():> > # function calling> > dictionary()> # Main function calling> if> __name__> => => '__main__'> :> > main()>

出力

Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6 

例 3: 辞書をキーでソートする

この例では、キーのタイプを文字列として、辞書編集順にソートします。

Python3




# Creates a sorted dictionary (sorted by key)> from> collections> import> OrderedDict> dict> => {> 'ravi'> :> '10'> ,> 'rajnish'> :> '9'> ,> > 'sanjeev'> :> '15'> ,> 'yash'> :> '2'> ,> 'suraj'> :> '32'> }> dict1> => OrderedDict(> sorted> (> dict> .items()))> print> (dict1)>

出力

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')]) 

例 4: キーを使用してキーと値をアルファベット順に並べ替える

この例では、Python でキーと値によって辞書を並べ替えようとしています。ここでは、ディクショナリの値に対してイテレータを使用してキーを並べ替えています。

Python3




# function calling> def> dictionairy():> > # Declaring the hash function> > key_value> => {}> # Initialize value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > > print> (> 'key_value'> ,key_value)> > print> (> 'Task 2:- Keys and Values sorted in'> ,> > 'alphabetical order by the key '> )> > > # sorted(key_value) returns a sorted list> > # of the Dictionary’s keys.> > for> i> in> sorted> (key_value):> > print> ((i, key_value[i]), end> => ' '> )> def> main():> > # function calling> > dictionairy()> # main function calling> if> __name__> => => '__main__'> :> > main()>

出力

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 2:- Keys and Values sorted in alphabetical order by the key (1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18) 

例 5: 値を使用してキーと値をアルファベット順に並べ替える

この例では、Python でキーと値によって辞書を並べ替えようとしています。ここでは辞書順にソートするために使用しています。

Python3




# Function calling> def> dictionairy():> > # Declaring hash function> > key_value> => {}> # Initializing the value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > > print> (> 'key_value'> ,key_value)> > print> (> 'Task 3:- Keys and Values sorted'> ,> > 'in alphabetical order by the value'> )> > # Note that it will sort in lexicographical order> > # For mathematical way, change it to float> > print> (> sorted> (key_value.items(), key> => lambda> kv:> > (kv[> 1> ], kv[> 0> ])))> def> main():> > # function calling> > dictionairy()> # main function calling> if> __name__> => => '__main__'> :> > main()>

出力

key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 3:- Keys and Values sorted in alphabetical order by the value [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)] 

このプログラムの時間計算量は O(n log n) です。ここで、n は辞書内のキーと値のペアの数です。

このプログラムの補助空間の複雑さも O(n) です。ここで、n は辞書内のキーと値のペアの数です。

例 6: 値による辞書の並べ替え

この例では、Python の値で辞書を並べ替えようとしています。ここでは、辞書内包表記を使用して値を並べ替えています。

Python3




# Creates a sorted dictionary (sorted by key)> from> collections> import> OrderedDict> import> numpy as np> dict> => {> 'ravi'> :> 10> ,> 'rajnish'> :> 9> ,> > 'sanjeev'> :> 15> ,> 'yash'> :> 2> ,> 'suraj'> :> 32> }> print> (> dict> )> keys> => list> (> dict> .keys())> values> => list> (> dict> .values())> sorted_value_index> => np.argsort(values)> sorted_dict> => {keys[i]: values[i]> for> i> in> sorted_value_index}> print> (sorted_dict)>

出力:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32} 

時間計算量: O(n log n)、n は辞書内の項目の数です。
補助スペース: O(n)。キーと値の新しいリストを作成し、元の辞書と同じ数のエントリを持つ新しい辞書を作成します。

キーまたは値による辞書のソートに基づいたさまざまな例を取り上げました。これらの Python コードを読んで練習すると、Python 辞書での並べ替えを理解するのに役立ちます。

ディクショナリの値をキーまたは値で簡単に並べ替えることができます。

類似の記事:

  • 辞書を並べ替える
  • 値および逆順で辞書を並べ替えるさまざまな方法
  • 辞書をキーと逆順で並べ替えるさまざまな方法
  • 辞書のリストを値で並べ替える方法
  • 辞書のキーと値のリストのソート