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

Python で複数の属性によってリストのリストを効率的に並べ替えるにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-10 22:52:15
オリジナル
205 人が閲覧しました

How Can I Efficiently Sort a List of Lists by Multiple Attributes in Python?

リスト内の複数属性の並べ替え

単一の属性によるリストの並べ替えは、Python のsorted() 関数と key 引数を使用することで簡単に行えます。ただし、複数の属性による並べ替えには課題があります。

問題の定式化:

リストのリストを、次のセクションで説明されているような複数の属性で素早く並べ替えるにはどうすればよいでしょうか。元の質問?

解決策:

は 2 つありますリスト内の複数属性の並べ替えの効率的な方法:

  1. キーとして Lambda 関数を使用する:

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

    この Lambda 関数はそれぞれを受け取りますx をサブリスト化し、2 番目と 3 番目の要素を含むタプルを返し、両方の要素に基づいて並べ替え順序を効果的に指定します。 attributes.

  2. **operator.itemgetter():

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

    operator.itemgetter() を使用すると、各サブリストから指定された要素を抽出する関数が返されます。複数の属性に基づいて並べ替えます。

どちらの場合も、並べ替えは順序は、key 関数または itemgetter 引数で指定された属性インデックスの順序によって決まります。

補足:

インプレース並べ替えの場合は、 を使用できます。適切なキー関数を使用して .sort() を直接実行します:

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

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

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