首页 >后端开发 >Python教程 >如何根据并行列表中的值对字符串列表进行排序?

如何根据并行列表中的值对字符串列表进行排序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-14 22:15:14517浏览

How to Sort a List of Strings Based on Values in a Parallel List?

根据并行列表中的值对列表进行排序

考虑以下场景:您有一个字符串列表 X 和相应的值列表 Y您的任务是使用 Y 中的值对 X 进行排序。例如,给定:

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

您的目标是获得排序后的结果输出:

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

虽然使用循环的传统方法是可行的,但存在一个简洁的解决方案:

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

此代码:

  1. Zips 两个列表 Y 和 X,创建元组列表:[(0, 'a'), (1, 'b'), ... (2, 'g')].
  2. 使用 Y 中的值作为排序键对 压缩列表进行排序。
  3. 使用列表提取每个元组的第二个元素(字符串)理解。

结果是按所需顺序排序的字符串列表。

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

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