我正在尝试根据子列表中的第二个元素对列表列表进行排序。
样本数据:
[[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
这里有什么问题?
我正在尝试根据子列表中的第二个元素对列表列表进行排序。
样本数据:
[[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
这里有什么问题?
非常适合我...您的真实列表很可能包括第二个元素不可转换为浮点数的项目,例如:
>>> 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