Python - 在List.Sort中使用Lambda

时间:2013-04-05 14:48:54

标签: python list python-2.7 lambda

我正在尝试根据子列表中的第二个元素对列表进行排序。

示例数据:

 [[u'm3u33mm534o', 14, 23], [u'2w3dfbv333g', 20, 34], [u'7kv903nfjfr9', 0, 35]]

类别:

 out.sort(key=lambda x: float(x[1]))

错误:

TypeError: float() argument must be a string or a number

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

完美适合我...你的真实列表很可能包含第二个元素不能转换为浮点数的项目,例如:

>>> out = [[u'test', None, 35], [u'7kv903nfjfr9', 0, 35], [u'm3u33mm534o', 14, 23], [u'2w3dfbv333g', 20, 34]]
>>> x = out.sort(key=lambda x: float(x[1]))
...
TypeError: float() argument must be a string or a number

要进行调试,只需执行类似

的操作
for i in out:
    try:
        float(i[1])
    except TypeError:
        print "error is here:", i