[問題] 如何自行定義排序方法
python裡面內建的sorted算是方便的方法,
但是小弟沒能試出來sorted能不能使用自己定義的方式作排序。
小弟現在了解的有:
設一個list=[(9,'abc','def'),(1,'eud','abc'),(4,'edu','xxx')]
如果用
sorted(list,key=lambda x:x[0])
會輸出 [(1, 'eud', 'abc'), (4, 'edu', 'xxx'), (9, 'abc', 'def')]
(順序:1>4>9)
sorted(list,key=lambda x:x[2],reverse=True)
會輸出 [(4, 'edu', 'xxx'), (9, 'abc', 'def'), (1, 'eud', 'abc')]
(x>d>a)
sorted(list,key=lambda x:x[1])
會輸出[(9, 'abc', 'def'), (4, 'edu', 'xxx'), (1, 'eud', 'abc')]
(ab>ed>eu)
sorted(list,key=lambda x:x[1][1])
會輸出[(9, 'abc', 'def'), (4, 'edu', 'xxx'), (1, 'eud', 'abc')]
(a"b"c > e"d"u > e"u"d)
那麼,如果小弟想讓list用tuple的第二項排,
並以"aeioubcdf....stwxyz"的方式排序,
(預期輸出結果是 [(9,'abc','def'),(1,'eud','abc'),(4,'edu','xxx')])
(因為 ab>eu>ed)
要用什麼方式讓python知道我要的排序方法呢?
還是要加入另外的函式?
--
◤ ◥ ◢ ◣
傑米,炸掉它吧。 ⊙▁⊙─ ─⊙▂⊙ 碰到問題,用C4就對了!
╰ ∕皿﹨ ◥皿◤ ╯
◥█◤◢ ◥ ︶◤
Adam Savage ◤ ︶ ◥◤ ﹨▼∕◥ Jamie Hyneman
MYTHBUSTERS ◥ ◤\◥ by dajidali
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.194.168
推
05/09 22:36, , 1F
05/09 22:36, 1F
→
05/09 23:52, , 2F
05/09 23:52, 2F
抱歉忘了先講,
小弟用的是3.1.2版,似乎沒有cmp...
※ 編輯: KagiJhou 來自: 140.117.194.168 (05/10 08:11)
→
05/10 10:31, , 3F
05/10 10:31, 3F
呃......這跟我的問題有什麼關係嗎?
還是3以上的版本沒辦法用自己設計的排列順序?
※ 編輯: KagiJhou 來自: 140.117.194.168 (05/10 10:59)
推
05/10 11:03, , 4F
05/10 11:03, 4F
→
05/10 11:03, , 5F
05/10 11:03, 5F
→
05/10 11:03, , 6F
05/10 11:03, 6F
推
05/10 11:08, , 7F
05/10 11:08, 7F
→
05/10 23:47, , 8F
05/10 23:47, 8F
→
05/11 18:32, , 9F
05/11 18:32, 9F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章