[問題] sorting cmp_to_key

看板Python作者 (suhang)時間6年前 (2018/02/20 08:46), 編輯推噓1(1011)
留言12則, 4人參與, 6年前最新討論串1/3 (看更多)
https://stackoverflow.com/questions/10645986/custom-sort-python 我想將 key = lambda word: [alphabet.index(c) for c in word[0]] 這行轉換成老式cmp function def mycmp(a, b): return a - b sorted(words, key = cmp_to_key(mycmp)) 但是不太會寫 請大家提示一下 a, b分別該是什麼? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 8.41.187.50 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1519087618.A.4E7.html

02/20 12:09, 6年前 , 1F
你要sort什麼
02/20 12:09, 1F

02/20 12:30, 6年前 , 2F
你用那一版的python,3版都是key,2版才用cmp.
02/20 12:30, 2F

02/20 12:30, 6年前 , 3F
然後,key一般接受一個parameter,cmp才有兩個parameter.
02/20 12:30, 3F

02/20 12:32, 6年前 , 4F
一般用key 就
02/20 12:32, 4F

02/20 12:33, 6年前 , 5F
是將傳入的parameter轉成可進行比較的object如number.
02/20 12:33, 5F

02/20 12:34, 6年前 , 6F
就可以進行比較了,不必像cmp接受兩個parameter還要自行定義
02/20 12:34, 6F

02/20 12:34, 6年前 , 7F
比較規則....
02/20 12:34, 7F

02/20 12:36, 6年前 , 8F
你要進行反向比較,將sorted的reverse設成true也就可以....
02/20 12:36, 8F

03/06 03:40, 6年前 , 9F
03/06 03:40, 9F

03/06 04:18, 6年前 , 10F
03/06 04:18, 10F

03/06 04:31, 6年前 , 11F
03/06 04:31, 11F

03/06 04:42, 6年前 , 12F
文章代碼(AID): #1QYt02Jd (Python)
文章代碼(AID): #1QYt02Jd (Python)