次のようなリストがあります。
li = [
{
'name': 'Lee',
'age': 22
},
{
'name': 'Mike',
'age': 34
},
{
'name': 'John',
'age': 23
}
]
sorted
リストをメソッドで並べ替え、age
キーで並べ替えたい
それを達成する方法は?
次のようなリストがあります。
li = [
{
'name': 'Lee',
'age': 22
},
{
'name': 'Mike',
'age': 34
},
{
'name': 'John',
'age': 23
}
]
sorted
リストをメソッドで並べ替え、age
キーで並べ替えたい
それを達成する方法は?
キー機能を使用します:
li_sorted = sorted(li, key=lambda x: x['age'])
@kojiroが示唆するものに相当するPython3はこれです
>>> sorted(li, key=lambda x:sorted(x.items()))
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]
これは明らかに効率が悪い
>>> sorted(li, key=lambda x:x['age'])
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]
とりあえず。という事実に依存しないという利点もあります。'age' < 'name'
を使用して同じことを書く方法は次のとおりです。itemgetter
>>> from operator import itemgetter
>>> sorted(li, key=itemgetter('age'))
[{'age': 22, 'name': 'Lee'}, {'age': 23, 'name': 'John'}, {'age': 34, 'name': 'Mike'}]