私はタプルのリストを持っています(x, ind)
ここでx
はアイテムで、ind
は結果のリストのターゲットインデックスです。リストはランダムな順序ですが、リストにN
の項目がある場合、タプル内のind
の値は、繰り返しなしで[0,N)
になります(つまり、有効なインデックスはすべて1回だけ存在します)。各タプルの位置がind
のリストを取得するにはどうすればよいですか?ソートなしでキーを並べ替えるリスト
キーでソートする方法の多くの既存の回答と混同しないでください。
もちろん、ind
キーでソートすることは簡単ですが、理由はind
値に関する前述の仮定のO(n)
操作がどうあるべきかに不必要な余分なO(n*logn)
費用があるでしょう。
:
l = [('item1',1), ('item0',0), ('item2',2), ('item4',4), ('item3',3)]
l2 = magic_rearrange(l, key=lambda x: x[1])
print(l2)
を与える必要があります:あなたのインデックスを仮定し
[('item0',0), ('item1',1), ('item2',2), ('item3',3), ('item4',4)]
これはまだソートされていますが、 'sorted'関数はありません。 –