首页 > 后端开发 > Python教程 > 如何在 Python 中对多个列表进行排序同时保持对齐?

如何在 Python 中对多个列表进行排序同时保持对齐?

Susan Sarandon
发布: 2024-12-28 17:10:17
原创
574 人浏览过

How Can I Sort Multiple Lists in Python While Maintaining Alignment?

在保持对齐的同时对列表进行排序

使用多个并行列表时,可能需要对一个列表进行排序,同时保持其他列表中元素的相应顺序。为了实现这一目标,我们提出了两种经典方法。

“装饰、排序、取消装饰”习语

此技术使用 Python 的内置 zip 函数简化了任务,该函数组合了多个列表中的元素转化为元组:

list1 = [3, 2, 4, 1, 1]
list2 = ['three', 'two', 'four', 'one', 'one2']
list1, list2 = zip(*sorted(zip(list1, list2)))
登录后复制

按第一个元素(list1)对元组进行排序后,顺序为应用于两个列表。

就地排序

为了提高速度,您可以使用就地排序方法:

tups = zip(list1, list2)
tups.sort()
result1, result2 = zip(*tups)
登录后复制

此方法通常优于第一种方法-line 版本适用于小列表,但由于 Python 优化的 zip 例程,对于较大的列表来说变得可比。

替代方案方法

  1. 对索引进行排序:如果比较第二个列表的元素效率低下或不受支持,请对索引进行排序并使用它们对列表进行重新排序。
  2. Key Function:定义一个键函数,根据第一个列表进行排序,而不比较第二个列表的元素列表:
list1 = [3, 2, 4, 1, 1]
list2 = [num * num for num in list1]
result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
登录后复制

以上是如何在 Python 中对多个列表进行排序同时保持对齐?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板