この記事の内容は、カスタム クラス オブジェクトのソート (attrgetter を使用) の Python 実装に関するものです。一定の参考値があります。必要な友人は参照してください。お役に立てれば幸いです。
1. 要件
カスタム クラスのリストを並べ替えます。2. 解決策
組み込みのsorted()関数は、呼び出し可能オブジェクト(callable)を渡すために使用されるパラメータキーを受け入れることができ、呼び出し可能オブジェクトはCertainに戻ります。オブジェクト内の値はソートされ、sorted はこれらの値を使用してオブジェクトを比較します。
例:
from operator import attrgetter class User: def __init__(self,userId): self.userId=userId def __repr__(self): return 'User({})'.format(self.userId) users=[User(40),User(20),User(30)] print(users) #方法1 print(sorted(users,key=lambda u:u.userId)) #方法2 print(sorted(users,key=attrgetter('userId')))
実行結果:
[User(40), User(20), User(30)] [User(20), User(30), User(40)] [User(20), User(30), User(40)]
attrgetter の方が通常は少し速くなります。上記のカウントは、min() 関数と max() 関数にも適用されます。
以上がPython はカスタム クラス オブジェクトの並べ替えを実装します (attrgetter を使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。