ホームページ  >  記事  >  バックエンド開発  >  Python リストを複数のフィールドで並べ替える方法

Python リストを複数のフィールドで並べ替える方法

Barbara Streisand
Barbara Streisandオリジナル
2024-11-23 18:23:10652ブラウズ

How to Sort a Python List by Multiple Fields?

複数のフィールドによる Python リストの並べ替え

単一フィールドによる Python リストの並べ替えは一般的なタスクですが、必要な場合はどうすればよいですか?複数のフィールドで並べ替えますか?

並べ替えられた CSV から作成された次のリストについて考えてみましょう。 file:

list1 = sorted(csv1, key=operator.itemgetter(1))

これにより、リストが 2 番目のフィールドで並べ替えられます。ただし、最初に最初のフィールドで並べ替え、次に 2 番目のフィールドで並べ替えたい場合はどうすればよいでしょうか?

解決策は、sorted() 関数のキー引数として ラムダ関数 を使用することです。 。ラムダ関数は、単純な並べ替え基準を定義するために使用できる匿名関数です。この場合、ラムダ関数はリスト内の要素を表す 1 つの引数を受け取り、並べ替えの基準となる 2 つのフィールドを含むタプルを返します。

たとえば、リストを並べ替えるには、最初と 2 番目のフィールドについては、次のラムダ関数を使用できます。

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))

このラムダ関数は、リスト要素の最初と 2 番目のフィールドを含むタプルを返します。次に、リストはこのタプルによって並べ替えられ、その結果、リストは最初に最初のフィールドで並べ替えられ、次に 2 番目のフィールドで並べ替えられます。

ラムダ関数を使用して、1 つのフィールドを昇順に並べ替え、もう 1 つのフィールドを降順に並べ替えることもできます。たとえば、最初のフィールドを昇順、2 番目のフィールドを降順で並べ替えるには、次のラムダ関数を使用できます。

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))

このラムダ関数は、リスト要素の最初のフィールドと、 2 番目のフィールドの負の値。次にリストはこのタプルによって並べ替えられ、その結果リストは最初のフィールドが昇順、2 番目のフィールドが降順で並べ替えられます。

以上がPython リストを複数のフィールドで並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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