我要排序:元组列表需要使用数组中的多个元素进行排序。
元组的输入数组需要根据数组中的多个元素进行排序。对于某些索引,它需要以非降序排序(以0表示),而对于其他索引,它需要以非递增mder排序(以1表示)在下面的编辑器中。您需要编写lambda函数以实现相同功能。
例如,输入数组为arr = [(1,2,3),(3,2,1),(4,2,1), (6,4,3)]
,元素数为n=4
,每个元组中的元素数为m = 3。令要对其进行排序的输入索引为indices =[(2,0), (O, 1)]
,长度为k = 2
。这意味着我们需要基于非降序的索引2对数组进行排序,然后基于非降序的索引0对数组进行排序。第一。基于index 2
以非降序排序:我们得到[(3,2,1),(4,2,1),(1,2, 3),(6,4,3)]
,然后,基于index 0
以非降序排序我们得到[(4,2,1),[3,2,1),(6,4,3),(1,2,3)]
。
[您需要实现稳定的排序,即,如果在位置i,j
的元素之间存在并列,使得i<=j
,然后这些元素在排序数组中的位置是fi,fj
,然后是fi<=fj
。
在下面的编辑器中完成功能indexSort
。您只需要编写实现该功能所需的lambda函数即可。
arr[arr[0],....arr[n-1]]
:元组数组索引:两个元素的数组元组
arr=[(1,2,3),(3,2,1),(4,2,1), (6,4,3)]
indices=[(2,0), (O, 1)]
Output: [(4,2,1),[3,2,1),(6,4,3),(1,2,3)]
index 2
降序排列:[(3,2,1),(4,2,1),(1,2,3),(6,4,3)]
index 0
的升序排列:[(4,2,1),(3,2,1),(6,4,3),(1,2,3)]
问题希望您编写一个lambda
函数来生成用于对元组列表进行排序的键。根据外部函数的indicies
参数,这样做并不难。如果索引中的第二个值非零,我将使用列表推导式,对索引取反值: