首頁 > 後端開發 > Python教學 > 如何對一個列表進行排序,同時保持另一個列表的並行順序?

如何對一個列表進行排序,同時保持另一個列表的並行順序?

Mary-Kate Olsen
發布: 2024-12-07 15:03:15
原創
134 人瀏覽過

How Can I Sort One List While Maintaining Parallel Order in Another?

使用自動排列對並行列表進行排序

問題陳述

問題陳述

問題陳述

問題陳述

list1, list2 = zip(*sorted(zip(list1, list2)))
# Alternatively, for in-place sorting:
# tups = zip(list1, list2)
# tups.sort()
# list1, list2 = zip(*tups)
登入後複製
給定兩個任意的並行列表資料類型,設計一種方法對一個列表進行排序,同時重新排列另一個列表

解決方案

解決此問題的一種常見方法涉及“裝飾、排序、取消裝飾”習慣用法。使用Python的內建zip函數,我們可以有效地將兩個清單的元素組合成元組,並根據第一個清單中的值對這些元組進行排序。然後可以「取消修飾」這個元組的排序列表,以獲得所需的排序列表。
tups = zip(list1, list2)
tups.sort()
zip(*tups)
登入後複製

實作:

優點和性能

這種方法優先考慮簡單性和簡潔性,尤其優先考慮是使用郵編功能。但是,對於小型列表,就地版本可能會稍快一些:對於較大的列表,單行版本在某些情況下可能表現更好。 替代方法如同評論中所提到的,還有其他方法,例如對索引進行排序或為排序提供自訂鍵函數 演算法。如果直接比較第二個清單中的元素有問題,這些替代方案可能是合適的。

以上是如何對一個列表進行排序,同時保持另一個列表的並行順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板