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