ホームページ > バックエンド開発 > Python チュートリアル > ソートキーで複数の属性に基づいてリストを効率的にソートするにはどうすればよいですか?

ソートキーで複数の属性に基づいてリストを効率的にソートするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-09 19:51:11
オリジナル
658 人が閲覧しました

How Can Sorting Keys Efficiently Sort Lists Based on Multiple Attributes?

リストの複数属性の並べ替えに並べ替えキーを利用する

個々の属性に基づいてリストのリストを並べ替えるのは、多くの場合簡単です。ただし、複数の属性が関係する場合、ジレンマが発生します。複数回の並べ替えを行わずに効率的に並べ替えることはできますか?

この課題に対処するために、キーの並べ替えの概念を導入します。並べ替えキーは、リスト内の各要素に一意の値を割り当て、並べ替え順序を決定する関数として機能します。

たとえば、指定されたリストでは次のようになります。

[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
ログイン後にコピー

次の基準で並べ替えます。 "tall/short" と "color" の両方で、次の属性に基づいてタプルを返すキー関数を定義できます。

key = lambda x: (x[1], x[2])
ログイン後にコピー

使用このキーを使用すると、sorted 関数を使用してリストを並べ替えることができます:

s = sorted(s, key = key)
ログイン後にコピー

あるいは、itemgetter 関数を利用してパフォーマンスを高速化することもできます:

import operator
s = sorted(s, key = operator.itemgetter(1, 2))
ログイン後にコピー

さらに、指定されたキーでソート関数を使用してリストを作成します:

s.sort(key = operator.itemgetter(1, 2))
ログイン後にコピー

ソートされたキーを使用すると、効率的になります。複数のソートパスを必要としない複数属性のソート。

以上がソートキーで複数の属性に基づいてリストを効率的にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート