首页 > 解决方案 > 如何按浮动子列表的项目对列表列表进行排序

问题描述

我正在尝试按浮动的 1 个项目对列表列表进行排序。问题是,使用 sort(list, itemgetter(n)) 将浮点数排序为字符串,并且输出不是我所期望的。

list1 = [('1','1',"9999"),('1','1',"9998"),('1','1',"9998.777"),('1','1',"9995111"),('1','1',"110000")]

list2 = sorted(list2, key=itemgetter(2))

print(list2)

实际结果 :

[('1', '1', '110000'), ('1', '1', '9995111'), ('1', '1', '9998'), ('1', '1', '9998.777'), ('1', '1', '9999')]

预期结果 :

[('1', '1', '9998'), ('1', '1', '9998.777'), ('1', '1', '9999'),('1', '1', '110000'),('1', '1', '9995111')]

标签: pythonpython-3.x

解决方案


它将它们排序为字符串,因为它们是字符串。原样itemgetter返回。x[2]你想要的是一个接受 ax 并返回的函数float(x[2])。所以,只需使用key= lambda x: float(x[2])


推荐阅读