Python 板


LINE

※ 引述《suhang (suhang)》之銘言: : 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分別該是什麼? 謝謝 cmp 與 key 的寫法邏輯完全不一樣 直接轉換基本上是行不通的, 重寫比較快 你必須要仔細想一下你的比對邏輯到底是什麼, 才能寫出正確的比較函式 key 函式是把本來不能比較(或比較法和你想的不同)的東西轉換成可比較的東西 接著再用轉換過的東西排序 例如你想把 ['apple', 'orange', 'pear'] 用字串長度排列 就會把它們轉成字串長度 [5, 6, 4], 排序成 [4, 5, 6] 再轉回來 那個轉換函式就是 key 函式, 在這個例子就是取字串長度的 len() cmp 函式則是會一次給你兩個輸入 a, b 讓你比大小 如果 a < b 回傳負數, a > b 正數, 相等回 0 同樣用上面的例子, 如果 a = 'apple', b = 'orange' 就要回負數 因為 len('apple') < len('orange) 在這個狀況中, 有個簡單的通解可以達成目的 def cmp_strs(a, b): return len(a) - len(b) 你把可能的三個輸入代進去, 應該就能知道為什麼 如同推文提到, cmp 函式並不是特別優秀的功能 從上面的例子也可以看出來, cmp 函式的實作方法相對不直覺 根據你想要實作的比較, 甚至可能需要很精明的程式碼, 需要另外註解來解釋 除非你需要支援非常舊(不支援 key)的 Python 版本 否則幾乎永遠不應該寫 cmp 函式, 而應該使用更簡潔易懂的 key 函式 --
1F:→ GNUGCC:void main(void) 的寫法是可行的唷^^08/10 00:59
2F:→ GNUGCC:雖然這個寫法較傳統,但是語法與文法都正確哦^^08/10 02:16
3F:→ GNUGCC:目前我使用的 Visual C++ 都接受 void main(void) 與 08/10 20:18
4F:→ GNUGCC:int main(void),各位可以把 C++ 專案改成原生 C++ 類型來 08/10 20:19
5F:→ GNUGCC:用 void main(void) 來寫發現也可通過編譯. 08/10 20:21
6F:→ GNUGCC:這個就是 Visual C++ 的彈性.08/11 20:23
--



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.94.175
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1519118968.A.29D.html
7F:推 s860134: 2.7 記得就有 02/21 20:40
8F:→ galeondx: https://tinyurl.com/yadsk3lo 03/06 04:42







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP