ホームページ >バックエンド開発 >Python チュートリアル >Python で複数の属性を持つリストを効率的に並べ替えるにはどうすればよいですか?
複数の属性を持つリストの効果的な並べ替え
リストのリストを管理する場合、特定の属性に基づいてリストを効率的に並べ替える必要があります。一般的なシナリオは、色と高さのリストを並べ替えるなど、複数の属性で同時に並べ替える必要がある場合に発生します。
次のリストのリストを考えてみましょう。
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
通常、並べ替え基準は次のとおりです。単一の属性は、sorted(s, key = itemgetter(1)) を使用して取得できます。ただし、複数の属性の場合は、より効率的なアプローチが存在します。
キーは、タプルを返す関数として定義できます。ラムダ関数またはアイテムゲッターを使用すると、複数の属性を考慮したキーを作成できます。
Lambda 関数:
s = sorted(s, key = lambda x: (x[1], x[2]))
Itemgetter の使用 (高速) :
import operator s = sorted(s, key = operator.itemgetter(1, 2))
さらに、ソートこのメソッドは、指定されたキーで直接使用できます:
s.sort(key = operator.itemgetter(1, 2))
このアプローチでは、指定された属性に基づいてリストが効果的に並べ替えられます。この方法はかなり高速であり、不必要な Python 関数呼び出しを回避します。
以上がPython で複数の属性を持つリストを効率的に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。