基于int列表对字符串列表进行排序(Python)

时间:2016-02-29 07:59:43

标签: python list sorting

我有两个列表

golang libraries

并希望将列表openid排序为

X = ["a", "b", "c", "d"]
Y = [3, 1, 5, 2]

基于相应位置列表X中项目的降序值

3 个答案:

答案 0 :(得分:2)

默认情况下,元组按第一个值排序。

首先使用Y的项目对列表进行压缩,对其进行排序(反向),然后提取第二个项目(X):

>>> sorted_list = [item[1] for item in sorted(zip(Y, X), reverse=True)]
>>> sorted_list
['c', 'a', 'd', 'b']
>>>

答案 1 :(得分:1)

您可以使用字典来保留映射,然后进行排序:

>>> X
['a', 'b', 'c', 'd']

>>> Y
[3, 1, 5, 2]

>>> d = dict(zip(X, Y))

>>> sorted(X, key=lambda x: d[x], reverse=True)
['c', 'a', 'd', 'b']

答案 2 :(得分:1)

X = ["a", "b", "c", "d"]
Y = [3, 1, 5, 2]
zipped = zip(Y,X)
zipped.sort()
print zipped
[(1, 'b'), (2, 'd'), (3, 'a'), (5, 'c')]