这个sorted将lst里面['101', 'Xiaozhang', '88']按照后面类88这个值排序 100这个值为什么会排序在最后面
lst = [['101', 'Xiaozhang', '88'], ['102', 'Xiaowang', '80'], ['103', 'Xiaohang', '97'], ['104', 'Xiaoli', '100'], ['105', 'Xiaozang', '15']]
lst_new = sorted(lst, key=lambda x:x[2], reverse=True)
print(lst_new)
[['103', 'Xiaohang', '97'], ['101', 'Xiaozhang', '88'], ['102', 'Xiaowang', '80'], ['105', 'Xiaozang', '15'], ['104', 'Xiaoli', '100']]
因为你是按照字符串进行排序的
字符串从左到右依次比较大小
你应该改成
lst_new = sorted(lst, key=lambda x:int(x[2]), reverse=True)
因为数字字符串比较大小是从左到右一位一位比较如果能找出来则停止,否则继续找下一位,你这里100,第一个字符串1都小于8,所以在8开头的字符串后面,同时100的第二个数字0小于15的第二个5所以继续排在最后面