Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで値で辞書を並べ替える

辞書は順序付けられていないデータ構造です。マッピング構造を使用してデータを格納します。辞書はキーを値にマップし、関連データを保持するペアを作成します。

Pythonの使用sorted() メソッドでは、辞書の内容を値で並べ替えることができます。たとえば、コーヒーメニューのアイテムの人気をランク付けするには、Pythonのsorted()を使用できます。 方法。このチュートリアルでは、sorted()がどのように行われるかについて説明します。 メソッドが機能し、それを使用して辞書の内容を並べ替える方法。

Pythonsorted()リフレッシャー

Pythonの組み込みのsorted() 関数を使用して、リスト、タプル、辞書などの反復可能なオブジェクトを並べ替えることができます。 sort()関数は、指定された反復可能オブジェクトの項目をソートし、新しくソートされた値を使用して新しいオブジェクトを作成します。

sorted()の構文は次のとおりです 方法:

sorted(object, key, reverse)

このメソッドは3つのパラメーターを取ります:

  • オブジェクト :並べ替える反復可能オブジェクト(必須)
  • キー :カスタムソート操作を実行できる関数(オプション)
  • リバース :オブジェクトを降順で並べ替えるかどうかを指定します(オプション)

ご覧のとおり、object 唯一の必須パラメータです。オプションのkeyを使用しないことにした場合 およびreverse パラメータの場合、Pythonはオブジェクトを昇順で自動的に並べ替えます。

注:キャリアカルマは、sort()に関する完全なガイドを作成しました およびsorted() Pythonのメソッド。このメソッドとkeyについて詳しく知りたい場合 パラメータについては、Pythonのsort()チュートリアルをご覧ください。

sorted()がどのように行われるかを説明するために、簡単な例を見ていきましょう。 メソッドは機能します。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

コーヒーショップを運営していて、Coffee Clubのアルファベット順のリストを取得したいとします。 (忠誠)顧客。すでにお客様のリストがありますが、申し込み日順に並べてあります。次のコードを使用してリストを並べ替えることができます。

customers = ['Kaley Fernandez', 'Darius Rowland', 'Isaac Borthwick',  'Alexandria Kidd']

sorted_customers = sorted(customers)

print(sorted_customers)

私たちのコードはcustomersをソートします 配列し、以下を返します:

['Alexandria Kidd', 'Darius Rowland', 'Isaac Borthwick', 'Kaley Fernandez']

コードの最初の行で、顧客の名前を格納するリストを宣言します。このリストは「顧客」と呼ばれます。次に、sorted()を使用します 顧客名のリストを昇順でソートするメソッド。この新しいリストの名前は次のとおりです。sorted_customers 。最後に、print()を使用して、新しくソートされたリストをコンソールに出力します。 関数。

辞書を値で並べ替える

辞書があり、キーと値のペアで並べ替えたいとします。これを行うには、次の2つの関数を一緒に使用します:items() およびsorted()

items() 関数を使用すると、辞書内のアイテムを取得できます。この関数をsorted()と組み合わせて使用​​できます 関数とカスタムkey 辞書を値でソートするためのパラメーター。次の2つの例を検討してください。

例1:降順で並べ替え

コーヒーショップに戻りましょう。コーヒーメニューのアイテムと、先月注文された各アイテムの数を格納する辞書があるとします。先月最も人気のあったコーヒーを確認したいので、順序辞書を値の降順で並べ替えることにしました。

辞書の内容を値で並べ替えるために使用できるプログラムは次のとおりです。

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)

for i in sort_orders:
	print(i[0], i[1])

コードは次を返します:

espresso 72
latte 56
cappuccino 54
americano 48
cortado 41

私たちのコードでは多くのことが起こっているので、それを分解してみましょう。

コードの最初に、ordersという辞書を定義します。 コーヒーの名前をキーとして保存します およびとして販売された数 。

次に、sorted()を使用します ordersを並べ替えるメソッド 値による辞書。 sorted()の使用方法の内訳は次のとおりです。 方法:

パラメータ テキスト 説明
オブジェクト orders.items() 「orders」ディクショナリのすべての値を参照します。 「注文」だけを使用する場合は、アイテムのインデックス位置を参照して、個々の値を取得する必要があります。一方、orders.items()を使用すると、リスト内のアイテムを含む反復可能なリストが作成されます。
キー key =lambda x:x [1] 並べ替えメカニズム これにより、辞書を値で並べ替えることができます。これは、名前のない関数であるLambda関数の例です。
リバース reverse =True データを降順で並べ替えることを指定します。

最後に、forを作成します sort_orderで作成された各アイテムをループするループ メソッドを実行し、キー名と値の両方を、sort_orderで指定した順序で並べ替えて出力します。 機能。

例2:昇順で並べ替える

同様に、コーヒーショップで販売されている最も人気のない飲み物を見つけたい場合は、上記と同じコードを使用できますが、reverse=Trueは使用できません。 パラメータ。このためのコードの例を次に示します。

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

sort_orders = sorted(orders.items(), key=lambda x: x[1])

for i in sort_orders:
	print(i[0], i[1])

コードを実行すると、次の値が返されます。

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

ご覧のとおり、コードは先月注文された各アイテムの数に基づいて、昇順で並べられたアイテムのリストを返しました。

リスト内包表記

さらに、リスト内包表記を使用して、辞書の内容を値で並べ替えることができます。リスト内包表記は、Pythonでリストを作成するための簡潔な手法であり、より複雑な並べ替えメソッドを作成する場合はスペースを節約できます。

リスト内包表記を使用して注文された各コーヒーの数で昇順でコーヒーの注文を並べ替えるために使用するコードは次のとおりです。

orders = {
	'cappuccino': 54,
	'latte': 56,
	'espresso': 72,
	'americano': 48,
	'cortado': 41
}

[print(key, value) for (key, value) in sorted(orders.items(), key=lambda x: x[1])]

コードを実行すると、次の応答が返されます。

cortado 41
americano 48
cappuccino 54
latte 56
espresso 72

コードの結果は、ordersのコンテンツを並べ替えた上記の例と同じでした。 昇順でリストします。ただし、sort_ordersを定義する代わりに 変数と別のforを作成する ソートされたリストを反復処理するためのループで、リスト内包法を使用してリストを作成しました。

上で作成したリスト内包表記は、リスト内の各アイテムを昇順で並べ替えてから、各辞書アイテムのキーと値をコンソールに出力します。

結論

Pythonで辞書を操作している場合、値で辞書を並べ替えるのが一般的な操作です。 sorted() メソッドを使用すると、ニーズに基づいてデータのセットを並べ替えることができます。

このチュートリアルでは、例を示し、sorted()の使用方法について説明しました。 keyの使用方法など、Pythonで辞書を値で並べ替えるメソッド およびreverse パラメーター。

これで、Pythonプロのように辞書を値で並べ替える準備が整いました!


  1. Pythonプログラムでの挿入ソート

    この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム ソートされた配列を各反復で拡張することにより、入力要素を反復します。 現在の要素を、並べ替えられた配列で使用可能な最大値と比較します。 現在の要素の方が大きい場合は、その要素をそのままにして次の要素に移動します。それ以外の場合は、並べ替えられた配列内で正しい位置を見つけて、配列内のその位置に移動します。 これは、並べ替えられた配列内の現在の要素よりも大きいすべての要素を右にシフトすることで実現されます。 それでは、アルゴリズムの視覚的表現を見てみましょう

  2. 挿入ソート用のPythonプログラム

    この記事では、Python3.xでの挿入ソートの実装について学習します。またはそれ以前。 アルゴリズム 1. Iterate over the input elements by growing the sorted array at each iteration. 2. Compare the current element with the largest value available in the sorted array. 3. If the current element is greater, then it leaves the element in its place &n