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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-22 11:43:10638浏览

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

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

在此场景中,您有两个列表,X 和 Y,其中每个元素Y 中的值对应于与 X 中的元素关联的值。您的目标是根据列表中的值对列表 X 进行排序Y.

实现此目的的一种有效方法是使用列表理解以及 zip() 和排序() 函数:

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

让我们分解此代码片段:

  1. zip(Y, X):这会创建一个元组列表,其中每个tuple 包含列表 Y 和 X 中的相应元素。
  2. sorted(... , key=lambdapair:pair[0]):这根据第一个对生成的元组列表进行排序每个元组的元素(列表 Y 中的值)。
  3. [x for _, x in ...]:最后,一个列表理解用于提取每个排序元组的第二个元素,这会按排序顺序为您提供相应的 X 值。

示例:

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

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

此代码将根据列表 Y 中的相应值输出排序后的列表: ["a", "d", "h", "b", "c", “e”、“i”、“f”、“g”]。

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

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