鍍金池/ 問答/Python/ 列表sorted()報錯

列表sorted()報錯

現(xiàn)在有一個一個列表:
files = ['T1.fas', 'T10.fas', 'T11.fas', 'T12.fas', 'T13.fas', 'T14.fas', 'T15.fas', 'T16.fas', 'T17.fas', 'T18.fas', 'T19.fas', 'T2.fas', 'T20.fas', 'T21.fas', 'T22.fas', 'T23.fas', 'T24.fas', 'T25.fas', 'T26.fas', 'T27.fas', 'T28.fas', 'T29.fas', 'T3.fas', 'T30.fas', 'T31.fas', 'T32.fas', 'T33.fas', 'T34.fas', 'T35.fas', 'T36.fas', 'T37.fas', 'T38.fas', 'T39.fas']
我想將其按照T后面的數(shù)字排列,即T1.fas,T2.fas.....

我是這樣寫的,但是報錯了

sorted(files, key=lambda x: int(x.split('.')[0][1:]))
ValueError: invalid literal for int() with base 10: ''

請教該怎么寫將他排序

回答
編輯回答
莓森

files.sort()

2018年4月20日 22:10
編輯回答
毀了心

sorted(file, key=lambda d : int(d.split('.')[0].split('T')[-1]))

2017年6月28日 11:14
編輯回答
喜歡你

例子中的列表是沒問題的。你看下你的數(shù)據(jù)里面是不是有一些值不規(guī)范,導(dǎo)致類型轉(zhuǎn)換時傳的是個空字符串: int('')

2017年11月17日 19:08