我有元组(x, ind)
的一个列表,其中x
是项目,ind
是它在结果列表中的目标指数。该列表以随机顺序排列,但可以假设如果列表中有N
项目,则元组中的ind
的值将在[0,N)
内而没有重复(即,所有有效索引将只存在一次)。我如何获得一个列表,其中每个元组的立场是ind
?重排列表不排序
请不要的如何关键排序许多现有的答案混淆。
显然,由ind
键排序是容易的,但会有不必要的额外成本O(n*logn)
应该是什么,因为有关ind
值的前述假设的O(n)
操作。
所以:
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)]
这仍然是排序,但没有'排序'功能。 –