我有一个包含多行以下形式的文件:
'1 2.45 3455 3,5'
'36 1.055 2290 1,6'
...........
...........
我能够去掉空格并制作一个这样的列表:
[ ['1','2.45','3455','3,5'], ['36','1.055','2290','1,6'],[......]...]
我需要按每个列表的最后一个元素对该列表进行排序。这要求我将最后一个元素从字符串转换为 float/int,以便我可以将其作为“排序”函数的键提供。结果应如下所示:
[ ['36','1.055','2290','1,6'], ['1','2.45','3455','3,5'],[......]...]
您能否告诉我如何进行这种转换?
最佳答案
使用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(",","."))))
它将按最后一个元素排序,比较 float 而不是字符串:
[['36', '1.055', '2290', '1,6'], ['1', '2.45', '3455', '3,5'], ['36', '1.055', '2290', '11,6']]
关于python - 如何将 '1,1'形式的字符串转换为float(1,1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438936/