LoginSignup
0
1

More than 3 years have passed since last update.

attrgetterを使って読みやすいソート

Last updated at Posted at 2018-05-07

タプルやリストでソートする際、ソート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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1