现在有一个一个列表: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后面的数字排列,即T1.fas,T2.fas.....
我是这样写的,但是报错了
sorted(files, key=lambda x: int(x.split('.')[0][1:]))
ValueError: invalid literal for int() with base 10: ''
请教该怎么写将他排序
例子中的列表是没问题的。你看下你的数据里面是不是有一些值不规范,导致类型转换时传的是个空字符串:
int('')