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

ラムダ関数を使用してPythonで値で辞書のリストを並べ替える方法


値に基づいて辞書のリストを並べ替える必要がある場合は、ラムダ関数を使用できます。

以下は同じのデモンストレーションです-

from operator import itemgetter

my_list = [{ "name" : "Will", "age" : 56},
          { "name" : "Rob", "age" : 20 },
          { "name" : "Mark" , "age" : 34 },
          { "name" : "John" , "age" : 24 }]

print("The list sorted by age is : ")
print(sorted(my_list, key=lambda i: i['age']))

print("The list sorted by age and name is : ")
print(sorted(my_list, key=lambda i: (i['age'], i['name'])))

print("The list sorted by age in descending order is : ")
print(sorted(my_list, key=lambda i: i['age'],reverse=True))

出力

The list sorted by age is :
[{'name': 'Rob', 'age': 20}, {'name': 'John', 'age': 24}, {'name': 'Mark', 'age': 34}, {'name': 'Will',
'age': 56}]
The list sorted by age and name is :
[{'name': 'Rob', 'age': 20}, {'name': 'John', 'age': 24}, {'name': 'Mark', 'age': 34}, {'name': 'Will',
'age': 56}]
The list sorted by age in descending order is :
[{'name': 'Will', 'age': 56}, {'name': 'Mark', 'age': 34}, {'name': 'John', 'age': 24}, {'name': 'Rob',
'age': 20}]

説明

  • 辞書要素のリストが定義され、コンソールに表示されます。

  • ソートされたメソッドが使用され、キーは「ラムダ」として指定されます。

  • 辞書のリストは、ラムダを2つのパラメーターとして使用して再度ソートされます。

  • 出力はコンソールに表示されます。


  1. Pythonを使用してアルファベット順に単語を並べ替える方法は?

    文字列オブジェクトに1つのスペースで区切られた複数の単語が含まれていると仮定します。文字列クラスのsplit()メソッドは、スペース文字で区切られた単語のリストを返します。このリストオブジェクトは、組み込みリストクラスのsort()メソッドを呼び出すことによってソートされます >>> string='Hello how are you?' >>> list=string.split() >>> list ['Hello', 'how', 'are', 'you?'

  2. Pythonで辞書の値で辞書のリストを並べ替えるにはどうすればよいですか?

    Pythonには、反復可能オブジェクトの要素を特定の順序で並べ替える組み込み関数sorted()があります。 sorted(iterable[, key][, reverse] 2番目のパラメーターは、戻り値がソートのキーとして使用される関数です。 3番目のパラメータはデフォルトでfalseです。trueの場合、ソートされたリストは降順で表示されます。 辞書キーの値をソートされた関数のキーとして定義するラムダ関数を使用します。次の例では、キーに関連付けられた値の昇順に従って辞書のリストを並べ替えます。 >>> dictlist=[{'name':'