並列リストの対応する値を使用したリストの並べ替え
文字列のリスト (X) と対応する整数のリスト (Y) があります。 )。目標は、リスト Y の値に基づいてリスト X の文字列を並べ替えることです。この場合、必要な出力は次のようになります。
["a", "d", "h", "b", "c", "e", "i", "f", "g"]
最短コード解決策
これを達成する最短の方法は、sorted 関数と zip 関数でリスト内包表記を使用することです。
[x for _, x in sorted(zip(Y, X))]
このコードは、リストをまとめて圧縮し、次に、最初の要素 (リスト Y の整数)。次に、ソートされたリストから 2 番目の要素 (リスト X の文字列) を抽出します。
例
リストについて考えてみましょう。
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1]
コードの使用:
Z = [x for _,x in sorted(zip(Y,X))] print(Z) # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
全般解決策
より一般的な解決策は、カスタム キー関数でsorted関数を使用することです。
[x for _, x in sorted(zip(Y, X), key=lambda pair: pair[0])]
ここで、キー関数は、圧縮されたファイル内の各ペアから最初の要素を抽出します。リストを使用すると、リスト Y の整数に基づいて並べ替えることができます。
以上がPython で対応するリストの値に基づいて 1 つのリストを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。