在Python我有一個str帶有這個符號的串列:
MyList = ['1:10', '5:2', '10:7', ...]
其中前面的字符:代表行號,后面的字符代表列號。
我想知道是否可以像這樣對串列進行排序:
MyList = ['1:1', '1:2', '1:3', ..., '2:1', '2:2', '2:3', ...]
uj5u.com熱心網友回復:
當然。使用(or )的key=引數,我們可以定義一個函式,該函式用冒號分割每個專案并將部分轉換為整數。之后,Python 的自然排序會完成剩下的作業。(諸如串列之類的可迭代物件是逐項比較的,而整數則按照您期望的整數進行比較。)sortedlist.sort()
>>> MyList = ['5:2', '1:10', '93:881', '93:8', '4:8', '10:7']
>>> sorted(MyList, key=lambda item: [int(part) for part in item.split(":")])
['1:10', '4:8', '5:2', '10:7', '93:8', '93:881']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/482233.html
