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

如何根据另一个列表中对应的整数值对字符串列表进行排序?

Susan Sarandon
Susan Sarandon原创
2024-12-31 16:00:20261浏览

How to Sort a List of Strings Based on Corresponding Integer Values in Another List?

使用另一个列表中的相应值对列表进行排序

给定两个列表,X 包含字符串,Y 包含整数,您的目标是根据中的相应值对 X 进行排序Y 同时保留具有相同“键”值的元素的原始顺序。使用 Python 的内置函数探索以下优化解决方案:

[x for _, x insorted(zip(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"]

说明:

  1. zip(Y, X)创建一个元组列表,每个元组包含 Y 中的一个元素以及来自X.
  2. sorted(zip(Y, X)) 根据第一个元素(Y 中的值)对元组列表进行排序。
  3. [x for _, x insorted(. ..)] 通过迭代已排序的元组列表、丢弃第一个元素 (_) 并仅保留第二个元素来创建一个新列表(x).

进一步说明:

sorted() 函数允许您指定确定排序标准的键函数。在本例中,我们使用 key=lambdapair:pair[0] 根据元组的第一个元素对元组进行排序。这可以根据 Y 中的相应值对 X 进行有效排序。

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

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