2017-10-26 4 views
0

インデックス値vを格納するリストa [i]があり、vが別のインデックス値リストb [v]。私はリストbの値に従ってリストをソートしたい 例: a = [0,2,3,1] b = [7,10,8,6] リストがa = [1,2,0,3]になりたい、簡潔な方法があるリストをソートするには?リスト1の値がリスト2のインデックスである場合、リスト2の値に従ってリスト1をソートする方法

+0

あなたはA'は '[1,0,3,2]であることを'たいだろう'? – James

答えて

-1

単純に解決策は最終的にBリスト

0
をソート後に採取したB・インデックスの順にリストの値を取得し、ソート後リストBのインデックスを取得し、最初のB種のリストであると考え

キーを使用して項目を変換することができます。そのキーはaの各要素の関数です。 aの任意の値がbの範囲外である場合、これはIndexError: list index out of rangeを失敗し、引き上げること

a = sorted(a, key=lambda i: b[i])

注:

はこれを試してみてください。

あなたの説明に基づいて、しかし、あなたはそう、リストは逆の順序でソートされたい:

a = sorted(a, key=lambda i: b[i], reverse=True)

関連する問題