首頁 > 後端開發 > 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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板