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

如何根據另一個列表中對應的整數值對字串列表進行排序?

Susan Sarandon
Susan Sarandon原創
2024-12-31 16:00:20262瀏覽

How to Sort a List of Strings Based on Corresponding Integer Values in Another List?

使用另一個列表中的對應值對列表進行排序

給定兩個列表,X 包含字串,Y 包含整數,您的目標是根據中的對應值對X 進行排序Y 同時保留具有相同「鍵」值的元素的原始順序。使用 Python 的內建函數探索以下最佳化解決方案:

[x for _, x insorted(zip(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"]

說明:

  1. zip(Y)建立一個元組列表,每個元組包含 Y中的一個元素以及來自X.
  2. sorted(zip(Y, X)) 根據第一個元素(Y 中的值)對元組列表進行排序。
  3. [x for _, x insorted(. ..)] 透過迭代已排序的元組列表、丟棄第一個元素(_) 並僅保留第二個元素來建立一個新列表(x ).

進一步說明:

sorted()函數允許您指定確定排序標準的鍵函數。在本例中,我們使用 key=lambdapair:pair[0] 根據元組的第一個元素對元組進行排序。這可以根據 Y 中的對應值對 X 進行有效排序。

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

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