我有一个包含多行格式的文件:
'1 2.45 3455 3,5'
'36 1.055 2290 1,6'
...........
...........
我能够剥离空格并列出这样的列表:
[ ['1','2.45','3455','3,5'], ['36','1.055','2290','1,6'],[......]...]
我需要按每个列表的最后一个元素对此列表进行排序。这需要我将最后一个元素从string转换为float / int,这样我就可以将它作为“sorted”函数的一个键。结果应如下所示:
[ ['36','1.055','2290','1,6'], ['1','2.45','3455','3,5'],[......]...]
请告诉我如何进行这种转换?
答案 0 :(得分:1)
使用 str.replace ,使用lambda替换逗号作为排序键,将替换的str转换为float:
l = [ ['1','2.45','3455','3,5'], ['36','1.055','2290','1,6'],['36','1.055','2290','11,6']]
print(sorted(l, key=lambda x: float(x[-1].replace(",","."))))
将按最后一个元素排序,比较为浮点数而不是字符串:
[['36', '1.055', '2290', '1,6'], ['1', '2.45', '3455', '3,5'], ['36', '1.055', '2290', '11,6']]
答案 1 :(得分:0)
这要求我将最后一个元素从字符串转换为float / int,这样我就可以将其作为键排序'功能
不正确的。
req.headers['x-forwarded-for']
参数可以返回任何对象,包括序列,只要它们是可订购的。因为序列天真地排序:
key