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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-02 22:02:39887ブラウズ

How to Sort Lists by Multiple Attributes in Python?

複数の属性によるリストの並べ替え: 総合ガイド

データの並べ替えは、多くのプログラミング タスクの基本的な側面です。複雑なデータ構造を扱う場合、多くの場合、複数の属性に基づいて並べ替える必要があります。この記事では、複数の基準に基づいてリストのリストを並べ替えるという問題について説明します。

提供されたコード スニペットはリストのリストを示しています。ここで、各内部リストはさまざまな属性を持つオブジェクトを表します。目標は、このリストを 2 つの属性 (「背の高い」または「背の高い」属性と色属性) で並べ替えることです。

複数基準の並べ替えに Itemgetter を使用する

Itemgetter は、次の場合に便利な関数です。タプル内の複数の属性のインデックスを作成します。複数のインデックスを引数として受け取り、指定されたタプルからそれらの属性を抽出する関数を返します。 itemgetter を使用すると、並べ替えに「背の高さ/背の高さ」と色属性の両方を考慮するキー関数を作成できます。

import operator

s = sorted(s, key = operator.itemgetter(1, 2))

キー属性の選択に Lambda 関数を使用する

別の方法ソートのキー関数を指定するには、ラムダ関数を使用します。 Lambda 関数は、インラインで定義できる匿名関数です。次のラムダ関数は、「tall/short」属性と color 属性のタプルを返します。

s = sorted(s, key = lambda x: (x[1], x[2]))

これらのメソッドのいずれかを使用すると、複数の条件に基づいてリストを並べ替えることができます。結果は、指定された属性に従って並べ替えられたリストのリストになります。

直接並べ替え

指定されたコード スニペットでは、sorted を使用して新しい並べ替えられたリストを返します。ただし、sort メソッドを使用してリスト自体を直接並べ替えることもできます。これにより、元のリストがその場で変更されます。

s.sort(key = operator.itemgetter(1, 2))

結論

itemgetter または lambda 関数を利用することで、複数の属性でリストを並べ替えるキー関数を定義できます。この手法は、複雑なデータ構造を扱う場合に特に役立ち、並べ替えプロセスを簡素化できます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。