我有一个像这样的字符串列表:
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1]
Run Code Online (Sandbox Code Playgroud)
使用Y中的值对X进行排序以获得以下输出的最短方法是什么?
["a", "d", "h", "b", "c", "e", "i", "f", "g"]
Run Code Online (Sandbox Code Playgroud)
具有相同"密钥"的元素的顺序无关紧要.我可以使用for构造,但我很好奇是否有更短的方法.有什么建议?
我有一个预定义的列表,表明一些值的顺序:
['id','name','age','height','weight',]
Run Code Online (Sandbox Code Playgroud)
(可能很长)
我想对此列表的任何子集进行排序:
所以,如果我得到['height','id']它将成为['id','height']
或['name','weight','height']--->['name','height','weight']
是否有某种方法可以sort使用key参数以某种方式使用该功能?或者我应该使用自定义方法,如果是这样,最有效的方法是什么?
我想对包含数字(比如l1)的python列表进行排序,并使用此列表的索引(排序顺序)重新排列两个不同列表(l2和l3)的元素.我想用标准的python库(不是pandas)实现这一点.我正在使用python 2.7.
例如,让我们说:
l1 = [2,4,5,1]
l2 = ['aa', 'bb', 'cc', 'dd']
l3= ['a_a', 'b_b', 'c_c', 'd_d']
Run Code Online (Sandbox Code Playgroud)
在这里,我想按降序对l1进行排序l1_sorted = [5,4,2,1].
其他列表(l2和l3)将按照l1(l1_sorted)中的排序索引重新排列.在上面的例子中,我们应该:
l2_sorted = ['cc', 'bb', 'aa', 'dd']
l3_sorted = ['c_c', 'b_b', 'a_a', 'd_d']
Run Code Online (Sandbox Code Playgroud)
目前,我正在使用Python(l1_sorted = sorted(l1, reverse=True))的排序函数.但那只能给我l1_sorted.
如何实现我想要的全部功能(即l2_sorted和l3_sorted)?