首先,我已經注意到在排序列表中有許多問題發佈在元組中,但是在查看了幾篇文章後,我沒有看到具有這種特定格式的任何問題爲清單。但是,我認爲這應該很簡單。Python - 基於多個排序項的元組排序列表
讓元組的列表是這樣的:
my_list = [(('G', 'J', 'I'), 1.0), (('E', 'H', 'F'), 1.0), (('F', 'H', 'G'), 0.8889), (('I', 'K', 'J'), 0.8889), (('H', 'I', 'G'), 0.8889), (('H', 'J', 'I'), 0.875)]
注意,列表中的每個元組由1:浮點數:用3個字母,以及2長度爲3的另一個多元組。然後,我的排序目標很簡單:首先通過浮點數排序元組列表,然後通過長度爲3的元組中的第一個字母排序浮點數中的任何關係,第三次打破該字母中的任何關係按長度3元組中的第二個字母排序。那麼所需的輸出將是:
sorted_list = [(('E', 'H', 'F'), 1.0), (('G', 'J', 'I'), 1.0), (('F', 'H', 'G'), 0.8889), (('H', 'I', 'G'), 0.8889), (('I', 'K', 'J'), 0.8889), (('H', 'J', 'I'), 0.875)]
在這個特殊的例子,2號信函分揀打破第一個字母沒有出現的關係,但它在我的更大的數據集呢。
謝謝!
所以,你想按浮點數降序排列,並按照元組中的字母升序排列?嘗試'key = lambda t:(-t [1],t [0])' –
[Python 3.3使用多個鍵對元組列表排序]可能的重複(http://stackoverflow.com/questions/23454961/python- 3-3-sorting-a-tuple-list-with-multiple-keys) – Prune