English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

ここでは辞書が与えられており、その値に基づいてソートするタスクがあります。この辞書にはnameとrollという二つの値があります。まず、lambda関数と組み込みのソート関数を使用して、ロールでソートされたリストを表示します。

二つ目に、名前とロールでソートされたリストを表示し、三つ目に、名前で表示します。

サンプルコード

# 辞書のリストを初期化しています 
my_list1 = [{ "name" : "Adwaita", "roll" : 100},
{ "name" : "Aadrika", "roll" : 234 },
{ "name" : "Sakya" , "roll" : 23 }
print ("リストはrollでソートされています: ")
print (sorted(my_list1, key = lambda i: i['roll']) )
print ("\r")
print ("リストはnameおよびrollでソートされています: ")
print (sorted(my_list1, key = lambda i: (i['roll'], i['name'])) )
print ("\r")
print ("リストは降順にrollでソートされています: ")
print (sorted(my_list1, key = lambda i: i['roll'],reverse=True) )

出力結果

リストはrollでソートされています: 
[{'name': 'Sakya', 'roll': 23}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Aadrika', 'roll': 234}
リストはnameおよびrollでソートされています: 
[{'name': 'Sakya', 'roll': 23}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Aadrika', 'roll': 234}
リストは降順にrollでソートされています: 
[{'name': 'Aadrika', 'roll': 234}, {'name': 'Adwaita', 'roll': 100}, {'name': 'Sakya', 'roll': 23}
おすすめ