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

如何根據 Python 中對應列表的值對一個列表進行排序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 08:30:10640瀏覽

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

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

您有一個字串列表(X) 和對應的整數列表( Y) )。您的目標是根據清單 Y 中的值對清單 X 中的字串進行排序。在本例中,所需的輸出為:

["a", "d", "h", "b", "c", "e", "i", "f", "g"]

最短程式碼解決方案

實現此目的的最短方法是使用具有排序和zip函數的列表理解:

[x for _, x in sorted(zip(Y, X))]

此程式碼將列表壓縮在一起,然後根據第一個元素(列表 Y 中的整數)。然後,它從排序列表中提取第二個元素(列表 X 中的字串)。

範例

考慮清單:

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

使用程式碼:

Z = [x for _,x in sorted(zip(Y,X))]
print(Z)  # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]

使用程式碼:

使用程式碼:
[x for _, x in sorted(zip(Y, X), key=lambda pair: pair[0])]

使用程式碼:使用程式碼:使用程式碼:用程式碼🎜>更通用的解決方案是將排序函數與自訂鍵函數一起使用:這裡,鍵函數從壓縮的每對中提取第一個元素列表,允許您根據列表Y 中的整數進行排序。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn