使用多个并行列表时,可能需要对一个列表进行排序,同时保持其他列表中元素的相应顺序。为了实现这一目标,我们提出了两种经典方法。
此技术使用 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 例程,对于较大的列表来说变得可比。
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中文网其他相关文章!