场景:包含具有各种值的列表记录“行”的列表
问题:List.sort没有考虑数值,所以值最终到处都是
即在80之后出现在列表中
我尝试过使用
list.sort(key=operator.itemgetter[index])
并做了
list.sort(lambda x,y:int(x[index])<int(y[index]))
无济于事。
答案 0 :(得分:3)
使用转换后的数字作为密钥。
L.sort(key=lambda x: int(x[index]))
答案 1 :(得分:2)
你在正确的轨道上,但是operator.itemgetter是一个函数,所以语法是:
list.sort(key=operator.itemgetter(index))
或者,使用lambda:
list.sort(key=lambda x: x[index])
key 参数是要走的路, cmp 参数已在Python 3中删除。如果你想要使用它,你应该使用 cmp()内置函数来实现比较器:
list.sort(cmp=lambda x, y: cmp(x[index], y[index]))