Pythonで値で辞書を分類する方法?


このチュートリアルでは、Python . 私たちはなぜそれが必要なのかを理解し、どのようにしますか.

Pythonのソート辞書

  • Why do we need to sort the Python dictionary?
  • Various methods to sort dictionary by value in Python
  • By converting data in the dictionary to list
  • Using Bubble Sort
  • Using sorted() Method
  • Using itemgetter() Method
  • Using dict.items() and sorted() Functions
  • By performing operations directly on the dictionary
  • Using for Loop
  • Using the sorted() Function
  • Using a Lambda Function
  • Using dictionary.items() Method
  • Closing thoughts
  • なぜPython辞書を値でソートする必要があるのですか?


    Pythonでは、辞書には、かっこ括弧内のコンマで区切られた「key : value」ペアを含む順序のないデータが格納されます.Pythonディクショナリクラスは、オブジェクト内の項目をソートすることを許可しません.値を取得するにはkey exists 既知である.
    Python辞書で膨大な量のデータを考慮してください.この場合、データをソートすることによってデータ収集の複雑さを減らすために、速い出力に至ります.このように、時間を節約して、大きなデータの上で効率を増やすために、電話帳のように、我々はPython辞書をソートする必要があります.
    リストを使用して辞書を並べ替えたり、リストを並べ替えたりできます.これを行う様々な方法を見てみましょう.

    Pythonで値を辞書でソートする方法


    辞書のデータをリストに変換することで


    最初に辞書でデータをリストに変換する方法を見ます.次に、リストをソートしてPython辞書をソートします.


    markdict={"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73}
    marklist=list(markdict.items())
    print(marklist)
    

    出力


    [('Tom', 67), ('Tina', 54), ('Akbar', 87), ('Kane', 43), ('Divya', 73)]
    
    ここでは、list ()関数を使用して辞書をリストに変換します.リストが準備ができたら、我々は辞書上で目的の結果を得るためにそれを操作を実行することができます.

    バブルソートの使用



    markdict={"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73}
    l=len(marklist)
      for i in range(l-1):
        for j in range(i+1,l):
          if marklist[i][1]>marklist[j][1]:
                t=marklist[i]
                marklist[i]=marklist[j]
                marklist[j]=t
        sortdict=dict(marklist)print(sortdict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tom': 67, 'Divya': 73, 'Akbar': 87}
    
    この例では、一時変数Tを使用して簡単なバブルソートを使用し、リスト内の値をソートします.

    sort ()の使用法


    Pythonのsorted ()関数は、指定したiterableからソートされたリストを返し、ソートされた項目のリストを返します.

    文法


    sorted (iterable, key, reverse)
    


    marklist = sorted(markdict.items(), key=lambda x:x[1])
    sortdict = dict(marklist)
    print(sortdict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    ここで、sort ()関数ではiterableはmarkdictです.項目とキーはラムダx : x [ 1 ]として設定されます.項目をソートした後、ソートされたデータを呼び出すために新しい辞書sortDictを作成します.

    例例39 - 1 itemgetter ()の使用法


    Pythonでは、itemgetter ()関数はオペランドから呼び出し可能オブジェクトを返します.sort ()関数を使用してitemgetter ()関数を使用すると、ソートされた項目を辞書で返します.


    import operator
    
    markdict = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73}
    marklist= sorted(markdict.items(), key=operator.itemgetter(1)) 
    sortdict=dict(marklist)
    print(sortdict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    演算子.関数itemgetter ( item )関数は、オペランドのRelax GetItem ()メソッドを使用して、そのオペランドから項目を取得する呼び出し可能オブジェクトを返します.

    例例54 - 1 dit . items ()およびsort ()の使用法


    dict items ()メソッドとsorted ()関数を使用して、辞書で値でソートされた項目のリストを返すことができます.


    markdict = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73}
    marklist=sorted((value, key) for (key,value) in markdict.items())
    sortdict=dict([(k,v) for v,k in marklist])
    print(sortdict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    上の例では、sort ()関数を使用して辞書をソートし、ソートされた値を持つ新しい辞書sortdictを作成します.

    辞書に直接操作することによって


    Pythonの辞書は、リストに項目を変換せずにソートすることができます.ここではそれを行う方法です.

    を使用して


    Pythonでsort ()関数と共にforループを使うことで、辞書を値でソートすることができます.これが同じ例です.


    dict1 = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73} 
    sorted_values = sorted(dict1.values()) # Sort the values 
    sorted_dict = {}  
    
    for i in sorted_values:     
        for k in dict1.keys():         
            if dict1[k] == i:             
                sorted_dict[k] = dict1[k]             
                break
    print(sorted_dict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    ここではまず、sort ()関数を使用して辞書の値を指定します.sorted ()関数は、辞書の代わりに並べ替えを行いません.したがって、SortedRange値に値を格納します.その後、ソートされた値をループし、各値のキーを見つけます.これは最終的に新しい辞書SortedRank dict [ k ]に追加されます.

    関数を使用します。



    dict1 = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73} 
    sorted_dict = {} 
    sorted_keys = sorted(dict1, key=dict1.get) 
    for w in sorted_keys:     
      sorted_dict[w] = dict1[w]  
    print(sorted_dict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    この例では、ソートの値を比較する前に、各要素に関数キーを使用します.ここで使用するもう一つの関数は、辞書のキーに対応する値を返すget ()です.このように、ソートされた( DINT 1 , key = DINT 1 . get )関数はソートされた値のキーのリストを返します.

    λ関数の使用


    ラムダ関数でPython関数sorte ()を使用して辞書を値順にソートできます.ラムダ関数の構文は次の通りです.

    文法


    lambda arguments: expression
    


    dict1 = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73} 
    sorted_tuples = sorted(dict1.items(), key=lambda item: item[1]) 
    sorted_dict = {k: v for k, v in sorted_tuples}  
    print(sorted_dict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    

    辞書の使用item ()メソッド


    メソッド()は、辞書を値でソートし、ソートされた値を返すことができます.以下は、このメソッドの使用方法の例です.


    from operator import itemgetter
    dictionary = {"Tom":67, "Tina": 54, "Akbar": 87, "Kane": 43, "Divya":73}
    sort_dict= dict(sorted(dictionary.items(), key=itemgetter(1))) 
    print(sort_dict)
    

    出力


    {'Kane': 43, 'Tina': 54, 'Tushar': 67, 'Divya': 73, 'Amar': 87}
    
    この例では、sort ()を使用し、iterableを辞書として設定します.items ()およびkey as key = itemgetter ( 1 )辞書のソートされた値を取得します.

    閉鎖思考


    Python辞書を2つの方法でソートすることができます.一つは辞書データをリストに変換してリストをソートすることです.もう一つの方法は辞書を直接ソートすることです.