[解決済み] 別のリストの値に基づいてリストをソートする
2022-03-19 16:57:01
質問
このような文字列のリストがあります。
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1 ]
Yの値を使ってXをソートして次の出力を得る最短の方法は何ですか?
["a", "d", "h", "b", "c", "e", "i", "f", "g"]
同じquot;key"を持つ要素の順序は重要ではありません。私は
for
という構文がありますが、もっと手っ取り早い方法はないでしょうか。何かいい方法はないでしょうか?
どのように解決するのですか?
最短のコード
[x for _, x in sorted(zip(Y, 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"]
一般的に言えば
[x for _, x in sorted(zip(Y, X), key=lambda pair: pair[0])]
説明しています。
の設定方法について詳しくは、こちらをご覧ください。
key
パラメータと同様に
sorted
をご覧ください。
これ
.
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] なぜList<T>を継承しないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonの@decoratorsについてまとめてみました。
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。