python - 如何将 '1,1'形式的字符串转换为float(1,1)?

标签 python sorting scripting type-conversion

我有一个包含多行以下形式的文件:

'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/

相关文章:

python - Pandas groupby对象的聚合

javascript - D3 根据 2 个对象属性对对象数组进行排序

delphi - Delphi中音乐播放器的播放列表/多个数据项列表

Bash Echo 转义序列

linux - 如何计算文档中的行数?

python - 目录不存在时的错误处理

python - google colab 在此过程中设置了 '^C'

python - 如何读取 2 列 csv 文件并将列绘制为 x 与 y 值

javascript - 为什么我的计算器功能无法完成数学运算?

scripting - TCL中输入TAB自动补全