使用多個並行列表時,可能需要對一個列表進行排序,同時保持其他列表中元素的相應順序。為了實現這一目標,我們提出了兩種經典方法。
此技術使用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中文網其他相關文章!