在Python 2,假設排序拉鍊,我們有兩個列表:的Python:根據長度和重量
list1 = [["A"],["A","B"],["B","D"],["C"],["A","B","D"]]
list2 = [5,10,10,15,10]
我想基於下降列表2(權重),每當排序列表1的兩個項目的權重是相同的(例如,x = [「A」,「B」,「D」]和y = [「B」,「D」]的重量都是10),長度較大的那個首先出現。對於列表1和表2,我所要的輸出如:
[["C"], ["A","B","D"], ["A","B"],["B","D"],["A"]
]
這怎麼可能?
我所知道的是,我們可以通過先定義
zipped = zip(list1,list2)
,然後僅基於大小對它們進行排序:
zipped.sort(key=lambda t: t[1],reverse=True)
我想你的意思是你想根據list2排序'list1'而不是你寫的方式。 –
@BurhanKhalid你是對的。編輯。 –
好的第一步。現在你有什麼嘗試其餘的? – Julien