對形如d1_1_1.bmp的標籤進行排序,要求按照標籤中三個數字按照公升序排序,排序後結果如下
使用sort函式**如下,要排序的列表名為items
items.sort(key =
lambda x:
(int
(x.split(
'_')[0
][1:
]),int
(x.split(
'_')[1
]),int
(x.split(
'_')[2
])))
用lamdba函式指定排序的依據,如果需要多個關鍵字作為依據進行排序,可以用形如lamdba x : (key1, key2, …)的方式指定。在上面的**中三個關鍵字是int(x.split(』』)[0][1:]),int(x.split(』』)[1]),int(x.split(』_』)[3]),以第乙個關鍵字為例進行解釋。首先需要將標籤根據"_「進行分割,即x.split(』_』),然後先按第乙個數字進行排序,取分割後的第一部分x.split(』_』)[0],再去掉數字前的"d」,x.split(』_』)[0][1:]。 Mysql的varchar排序按照數字順序
自己建表的時候,把乙個字段型別建立為varchar 2 其實應該建為int 2 的。因為我只允許輸出數字。這本來也沒什麼,無非就是佔點空間,懶得改了。但是今天在後台發現排序有問題。於是,沒辦法,改之。下面簡單說一下mysql的varchar排序問題,引以為戒。下面,我從資料庫裡面以server id...
Mysql數字字串按照數字排序
mysql字串相信大家都不陌生,在mysql字串排序時經常會遇到一些問題,比如下面的這 今天解決了乙個關於mysql字串排序的很奇怪的問題,在資料裡面定義的是varchar型別,實際存放的是int型別的資料,按一下查詢語句進行排序 將字段 1或者 0可以將mysql字串欄位按數值排序 如 selec...
MySQL 數字字串按照數字排序
乙個關於mysql字串排序,在資料裡面定義的是varchar型別,實際存放的是int型別的資料,按一下查詢語句進行排序 將字段 1或者 0可以將mysql字串欄位按數值排序 如 1 select from table where 1order by id 1desc 或者1 select from ...