Re: [教學] 排序問題

看板Python作者 (HKE)時間15年前 (2009/11/16 21:27), 編輯推噓5(504)
留言9則, 3人參與, 最新討論串3/7 (看更多)
抱歉,剛剛有點太慌亂。 小弟是要排序 例如 GG=['NM_M_3.3','NM_M_3.13','NM_M_3.11'] 我想要照數字大小排序 但是如果利用GG.sort() 會變 ['NM_M_3.11', 'NM_M_3.13', 'NM_M_3.3'] 他變成只排序小數點後面1然後由小到大 我想要的是 [ 'NM_M_3.3','NM_M_3.11', 'NM_M_3.13'] 問題是卡在字串裡面前後都夾很多字串,我有想過直接把字理的 3.3 3.11 3.13 取出來在轉float比大小就不會有這問題,但是每次的檔名 都不是很規則不能單純任位子 我在舉個例像 GG=['NM_M_3.3','NM_M_3.13','NM_M_3.11','NM_M_3.9','NM_M_3.1'] GG.sort() ['NM_M_3.1', 'NM_M_3.11', 'NM_M_3.13', 'NM_M_3.3', 'NM_M_3.9'] 問題是我想要的是 ['NM_M_3.1', 'NM_M_3.3', 'NM_M_3.9', 'NM_M_3.11', 'NM_M_3.13'] 單純用python語法可以做到嘛? ※ 引述《sbrhsieh (偶爾想擺爛一下)》之銘言: : ※ 引述《g9678007 (HKE)》之銘言: : : 標題: [教學] 排序問題 : : 時間: Mon Nov 16 19:10:13 2009 : : hello 各位板上的大大好 小弟又來請教各位大大了 : : 問題是 GG=['NM_M_3.3','NM_M_3.13','NM_M_3.11'] : : 排序 我用SORT 都會變這樣 : : ['NM_M_3.11', 'NM_M_3.13', 'NM_M_3.3'] : : 這不是我要的我要是 : : [ 'NM_M_3.3','NM_M_3.11', 'NM_M_3.13'] : : 因為這是字串沒辦法轉浮點數 : : 或用拆字串取數的手法因為前後面都還有一些字串沒有規折可以 : : 分解 拜託各位大大了 : : -- : : → g9678007:報歉第一個GG順序打錯 反正一開始就是亂數排位 11/16 19:12 : : → AndCycle:請自行定義如何排序 11/16 19:12 : : → sbrhsieh:是依什麼規則? 11/16 19:53 : : → g9678007:把它想成數字大小排序是卡在他混在字串裡面 11/16 20:02 : 說真的,看不懂你的推文是什麼意思? : 如果文章內容有打錯,不能花點時間修改一下你的文章內容嗎? : 別人問你 [ 'NM_M_3.3','NM_M_3.11', 'NM_M_3.13'] 是依什麼順序,你回答說依照 : 數字大小排序,問題是這到底是什麼樣的大小的順序? : 我猜你要的是降冪:'NM_M_3.3','NM_M_3.13', 'NM_M_3.11'。 : 可以在 sort 操作指定反序(for Python 2.4+): : GG.sort(reverse=True) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.28.55

11/16 21:44, , 1F
為什麼第一個例子 3.3 > 3.11 呀?
11/16 21:44, 1F

11/16 21:46, , 2F
因為字串的大小是一個字元一個字元比吧
11/16 21:46, 2F

11/16 21:47, , 3F
應該說..原PO的問題是希望照float的方式比吧??
11/16 21:47, 3F

11/16 21:48, , 4F
就跟有些檔名排序 pic10.jpg 會排在 pic2.jpg的前面一樣
11/16 21:48, 4F

11/16 21:49, , 5F
所以就是要問怎樣可以做到呀…
11/16 21:49, 5F

11/16 21:49, , 6F
除了自己寫一個sort函式,目前還沒想到好方法
11/16 21:49, 6F

11/16 21:55, , 7F
或是自己寫一個class, override __gt__() 函式
11/16 21:55, 7F

11/16 21:56, , 8F
喔喔 看了help , 發現sort可以傳入自訂的cmp函式
11/16 21:56, 8F

11/16 22:09, , 9F
就這個例子來說給key會比較簡單xd
11/16 22:09, 9F
文章代碼(AID): #1B0LD1-e (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 3 之 7 篇):
2
12
文章代碼(AID): #1B0LD1-e (Python)