タプルやリストでソートする際、ソートkeyを指定することがあると思いますが、keyを変数名で指定してより見やすくなる方法を知りました。ここにメモしておきます。
よくkeyの指定ではlambda式が用いられていますが、attrgetterというものを使えばより見やすく書けるみたいです。
from operator import attrgetter
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade= grade
self.age = age
def __repr__(self):
return repr((self.name,self.grade,self.age))
student_objects = [
Student("john","A",12),
Student("aeha","C",71),
Student("argea","F",2),
]
print(sorted(student_objects, key= attrgetter("age")))
出力結果
[('argea', 'F', 2), ('john', 'A', 12), ('aeha', 'C', 71)]
print文の箇所をlambda式で書くと
print(sorted(student_objects, key=lambda x: (x.age,)))
となるので、記号xやわかりにくいカンマが入らない分、少しばかり見やすくなったと思います。
参考にしたサイト
https://docs.python.org/2/howto/sorting.html
https://qiita.com/tag1216/items/485217b5c88dfcf00d34