我在python中读取了一个日志,其中包含每行的名称,内存和ncall 并将其保存为元组列表,其中每个元素都是元组(名称,内存,ncalls) 有时需要根据内存或ncalls按名称对列表进行排序。 如果我只是使用代码
的问题 mylist=sorted(mylist, key=itemgetter(2))
使用所需的参数对列表进行排序,但是python将参数视为String,我得到了这个结果
item3, 45, 1
item1, 4, 12
item4, 65, 3
item2, 65, 5
期望的结果将是
item3, 45, 1
item4, 65, 3
item2, 65, 5
item1, 4, 12
因为3和5小于12
如何在不更改保存列表的方式的情况下解决此问题?
答案 0 :(得分:3)
解决方案是将key定义为将第三项转换为int的lambda:
sorted_data = sorted(list, key=lambda t: int(t[2]))