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

不言
リリース: 2018-10-20 14:50:03
転載
2407 人が閲覧しました

この記事の内容は、カスタム クラス オブジェクトのソート (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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!