2024-04-26 11:18:06 发布
网友
我有两张单子
X = ["a", "b", "c", "d"] Y = [3, 1, 5, 2]
并希望将列表X排序为
X
X = ["c", "a", "d", "b"]
基于列表Y中相应位置项的降序值
Y
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')]
可以使用字典保留映射,然后执行排序:
>>> 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']
默认情况下,元组按第一个值排序。你知道吗
因此,首先用Y的项压缩列表,对其排序(反转),然后提取第二个项(X):
>>> sorted_list = [item[1] for item in sorted(zip(Y, X), reverse=True)] >>> sorted_list ['c', 'a', 'd', 'b'] >>>
可以使用字典保留映射,然后执行排序:
默认情况下,元组按第一个值排序。你知道吗
因此,首先用
Y
的项压缩列表,对其排序(反转),然后提取第二个项(X
):相关问题 更多 >
编程相关推荐