ホームページ  >  記事  >  バックエンド開発  >  Python はカスタム クラス オブジェクトの並べ替えを実装します (attrgetter を使用)

Python はカスタム クラス オブジェクトの並べ替えを実装します (attrgetter を使用)

不言
不言転載
2018-10-20 14:50:032370ブラウズ

この記事の内容は、カスタム クラス オブジェクトのソート (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 サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。