首页 >后端开发 >Python教程 >如何根据 Python 中相应列表的值对一个列表进行排序?

如何根据 Python 中相应列表的值对一个列表进行排序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-19 08:30:10594浏览

How Can I Sort One List Based on the Values of a Corresponding List in Python?

使用并行列表中的相应值对列表进行排序

您有一个字符串列表 (X) 和相应的整数列表 (Y) )。您的目标是根据列表 Y 中的值对列表 X 中的字符串进行排序。在本例中,所需的输出为:

["a", "d", "h", "b", "c", "e", "i", "f", "g"]

最短代码解决方案

实现此目的的最短方法是使用具有排序和 zip 函数的列表理解:

[x for _, x in sorted(zip(Y, X))]

此代码将列表压缩在一起,然后根据第一个元素(列表 Y 中的整数)。然后,它从排序列表中提取第二个元素(列表 X 中的字符串)。

示例

考虑列表:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,    0,   1,   2,   2,   0,   1]

使用代码:

Z = [x for _,x in sorted(zip(Y,X))]
print(Z)  # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]

常规解决方案

更通用的解决方案是将排序函数与自定义键函数一起使用:

[x for _, x in sorted(zip(Y, X), key=lambda pair: pair[0])]

这里,键函数从压缩的每对中提取第一个元素列表,允许您根据列表 Y 中的整数进行排序。

以上是如何根据 Python 中相应列表的值对一个列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn