sat*_*ish 6 python sorting list
如何对包含浮点值的python列表进行排序,
list1 = [1, 1.10, 1.11, 1.1, 1.2] 
要么
list1 = ['1', '1.10', '1.11', '1.1', '1.2'] 
预期的结果是
list_val = ['1', **'1.1', '1.2'**, '1.10', '1.11']
但返回的结果使用sort()方法返回
[1, 1.1000000000000001, 1.1000000000000001, 1.1100000000000001, 1.2]
要么
['1', '1.1', '1.10', '1.11', '1.2'].
但是,在这里1.2应该进来之间1.1和1.10.
Jan*_*egt 10
您可以使用:
list1 = sorted(list1)
如果它是第二种格式(作为字符串),您可以使用key参数将其转换为浮点数:
list1 = sorted(list1, key=float)
key参数需要一个函数,该函数将在使用转换值进行排序之前转换值,但保留原始值
只需使用sorted:
sorted(list1, key=float)
这会将元素转换为float比较之前的值,因此它适用于字符串列表或浮点数列表(或整数,就其价值而言)。