Python 如何转换形式为';1,1';变成浮点数(1,1)?

Python 如何转换形式为';1,1';变成浮点数(1,1)?,python,sorting,scripting,type-conversion,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'],[......]...] 我需要按每个列表的最后一个元素对列表进行排序。这需要将最后一个元素从strin

我有一个包含多行表单的文件:

'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'],[......]...]
您能告诉我如何进行这种转换吗?

使用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']]
这需要将最后一个元素从string转换为float/int,以便将其作为键提供给“sorted”函数

不对。
key
参数可以返回任何对象,包括序列,只要它们是可排序的。由于序列排序很简单:

..., key=lambda x: x[-1].split(','), ...)

为什么数据有混合的基点?最后一个元素实际上是坐标。它们实际上是(1,6),(3,5)等等。那么您想如何订购它们?按递增顺序。例:(1,1),(1,2),(2.3),(3,5),(5,8),(10,67),(67,45)艾彻:你会点(1,11),(2,1)和(1,2)吗?那真是个好主意!非常感谢,坎宁安先生。请问你是从哪里学来这种排骨的?一本书,或者网上的一些资料。对于初学者来说,什么是有用的资源?@anirudh1624,不用担心,我认为这是一个非常好的资源,谢谢@Padraic Cunningham!