相关疑难解决方法(0)

根据另一个列表中的值排序列表?

我有一个像这样的字符串列表:

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构造,但我很好奇是否有更短的方法.有什么建议?

python sorting

317
推荐指数
10
解决办法
24万
查看次数

基于键排序列表的python排序列表

我有一个预定义的列表,表明一些值的顺序:

['id','name','age','height','weight',]
Run Code Online (Sandbox Code Playgroud)

(可能很长)

我想对此列表的任何子集进行排序:

所以,如果我得到['height','id']它将成为['id','height']

['name','weight','height']--->['name','height','weight']

是否有某种方法可以sort使用key参数以某种方式使用该功能?或者我应该使用自定义方法,如果是这样,最有效的方法是什么?

python sorting list

9
推荐指数
1
解决办法
6202
查看次数

使用另一个列表的索引对python列表进行排序

我想对包含数字(比如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)?

python list python-2.7

1
推荐指数
1
解决办法
41
查看次数

标签 统计

python ×3

list ×2

sorting ×2

python-2.7 ×1