ホームページ >バックエンド開発 >Python チュートリアル >対応するリストの値に基づいて 1 つのリストを並べ替えるにはどうすればよいですか?

対応するリストの値に基づいて 1 つのリストを並べ替えるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 11:43:10640ブラウズ

How Can I Sort One List Based on the Values of a Corresponding List?

並列リストの対応する値によるリストの並べ替え

このシナリオでは、X と Y という 2 つのリストがあり、各要素はY のは、X の要素に関連付けられた値に対応します。目標は、リストの値に基づいてリスト X を並べ替えることです。 Y.

これを達成するための 1 つの効率的なアプローチは、zip() 関数とsorted() 関数とともにリスト内包表記を使用することです。

[x for _, x in sorted(zip(Y, X))]

このコード スニペットを分析してみましょう:

  1. zip(Y, X): これにより、タプルのリストが作成されます。タプルには、リスト Y と X の対応する要素が含まれます。
  2. sorted(... , key=lambda ペア: ペア[0]): これは、生成されたタプル リストを最初の要素に基づいて並べ替えます。各タプルの要素 (リスト Y の値).
  3. [x for _, x in ...]: 最後に、リスト内包表記を使用して、ソートされた各タプルの 2 番目の要素が抽出され、対応する X 値がソートされた順序で得られます。

例:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,   0,   1,   2,   2,   0,   1 ]

result = [x for _, x in sorted(zip(Y, X))]
print(result)  # ['a', 'd', 'h', 'b', 'c', 'e', 'i', 'f', 'g']

このコードは、リスト Y の対応する値に従ってソートされたリストを出力します: ["a", "d", 「h」、「b」、「c」、「e」、「i」、「f」、「g」].

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

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