作者sbrhsieh (偶尔想摆烂一下)
看板Python
标题Re: [教学] 排序问题
时间Mon Nov 16 22:17:21 2009
※ 引述《g9678007 (HKE)》之铭言:
: 抱歉,刚刚有点太慌乱。
: 小弟是要排序 例如 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比大小就不会有这问题,但是每次的档名
: 都不是很规则不能单纯任位子
如果你没有办法说清楚你要排序的规则,就没有人能够帮你。
你说你想要的顺序是 NM_M_3.3','NM_M_3.11', 'NM_M_3.13',但 3.3, 3.11, 3.13
既不是小->大,也不是大->小,我搞不懂你到底要什麽顺序?!
如果你要的是 . 後面的部分当作数字以升幂排序 3 < 11 < 13,那麽把 . 後面的
部分取出来 parse 成 int/long 来排序就可以了。
: 我在举个例像
: 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语法可以做到嘛?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.133.69
※ 编辑: sbrhsieh 来自: 218.173.133.69 (11/16 22:19)