使用並行列表中的對應值對列表進行排序
您有一個字串列表(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])]
以上是如何根據 Python 中對應列表的值對一個列表進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!