2011-04-09 96 views
0

方案:包含的列表记录“行”的各种价值观排序混合数值列表列表

列表

问题:这样的值最终遍布List.sort不走数值考虑地方

即9出现在列表80

我使用

list.sort(key=operator.itemgetter[index]) 

尝试后,做一个

list.sort(lambda x,y:int(x[index])<int(y[index])) 

无济于事。

+0

哪些值列表 - 我们需要更多的信息 – Mark 2011-04-09 14:42:59

回答

3

使用转换后的数字作为关键字。

L.sort(key=lambda x: int(x[index])) 
+0

应该已经看到了,谢谢! – Bolster 2011-04-09 14:51:13

2

你在正确的轨道上,但operator.itemgetter是一个函数,所以语法是:

list.sort(key=operator.itemgetter(index)) 

或者,使用lambda:

list.sort(key=lambda x: x[index]) 

参数是要走的路,cmp参数已在Python 3中删除。如果您想使用它,无论如何,您应该使用CMP()内置函数来实现你的比较:

list.sort(cmp=lambda x, y: cmp(x[index], y[index])) 

参见:http://wiki.python.org/moin/HowTo/Sorting/