首頁 > 後端開發 > Python教學 > 如何根據對應清單的值對一個清單進行排序?

如何根據對應清單的值對一個清單進行排序?

Mary-Kate Olsen
發布: 2024-12-22 11:43:10
原創
569 人瀏覽過

How Can I Sort One List Based on the Values of a Corresponding List?

以並行列表中的對應值對列表進行排序

在此場景中,您有兩個列表,X 和Y,其中每個元素Y 中的值對應於與X 中的元素關聯的值。您的目標是根據列表中的值對列表X 進行排序Y.

實現此目的的一種有效方法是使用列表理解以及zip() 和排序() 函數:

[x for _, x in sorted(zip(Y, X))]
登入後複製

讓我們分解此程式碼片段:

  1. zip(Y, X):這會建立一個元組列表,其中每個tuple 包含列表 Y 和 X 中的對應元素。
  2. sorted(... , key=lambdapair:pair[0]):這根據第一個對產生的元組列表進行排序每個元組的元素(列表Y中的值)。
  3. [x for _, x in ...]:最後,一個列表理解用於提取每個排序元組的第二個元素,這會按排序順序為您提供對應的X 值。

範例:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,   0,   1,   2,   2,   0,   1 ]

result = [x for _, x in sorted(zip(Y, X))]
print(result)  # ['a', 'd', 'h', 'b', 'c', 'e', 'i', 'f', 'g']
登入後複製

此程式碼將根據清單Y 中的對應值輸出排序後的清單: ["a", "d" , "h", "b", "c", “e”、“i”、“f”、“g”]。

以上是如何根據對應清單的值對一個清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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