Python中如何根据子列表的指定属性对列表内的子列表进行排序
解决方法
你需要给sort方法的key参数传入提取子列表最后一项的函数即可,完整实现代码如下:
a = [ ['David','McConor','123000','900'], ['Timothy','Gerrard','123001','901'] ] # 定义排序键:取每个子列表的最后一个元素 mykey = lambda x: x[-1] # 降序排序,数值更大的901会排在最前 a.sort(key=mykey, reverse=True) # 逐个打印子列表 for sub_list in a: print(sub_list)
运行后输出结果为:
['Timothy', 'Gerrard', '123001', '901'] ['David', 'McConor', '123000', '900']
补充说明
如果后续列表中出现长度超过3位的数字字符串(比如'1000'),字符串字典序排序会出现'1000' < '901'的不符合数值逻辑的情况,可以将排序键改为转整数逻辑,实现纯数值排序:
mykey = lambda x: int(x[-1])
内容的提问来源于stack exchange,提问作者user16612111
相关产品推荐
相关产品推荐

