gpt4 book ai didi

python - 使用 .sort() 对列表中的数据进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:07 24 4
gpt4 key购买 nike

我有一个数字列表,我需要对这些数字进行排序以完成不同的计算,我注意到 .sort() 函数正在分别对 2 位数字 (10-99) 和 3 位数字 (100-999) 进行排序列表,所以我最终得到了 min()、max() 和中位数的错误值,知道为什么会这样吗?

排序前:

[' 75.0', ' 82.43', ' 112.11', ' 89.93', ' 103.19', ' 80.6', ' 113.44', ' 105.44', ' 95.54', ' 121.98', ' 114.25', ' 109.84', ' 90.48', ' 105.84', ' 82.89', ' 113.64', ' 102.73', ' 104.57', ' 100.83', ' 75.59', ' 79.86', ' 91.11', ' 94.75', ' 109.89', ' 117.39', ' 74.71', ' 71.04', ' 92.97', ' 88.87', ' 92.95', ' 86.67', ' 101.46', ' 92.4', ' 85.2', ' 107.19', ' 117.81', ' 90.95', ' 82.02', ' 87.31', ' 106.53', ' 86.28', ' 106.62', ' 107.57', ' 89.38', ' 105.88', ' 74.45', ' 90.03', ' 107.96', ' 77.42', ' 98.9', ' 109.81', ' 102.51', ' 116.71', ' 82.92', ' 81.78', ' 74.42', ' 76.27', ' 73.84', ' 75.55', ' 102.29', ' 108.1', ' 98.84', ' 101.48', ' 77.75', ' 98.57', ' 70.31', ' 78.28', ' 80.18']

排序后

[' 100.83', ' 101.46', ' 101.48', ' 102.29', ' 102.51', ' 102.73', ' 103.19', ' 104.57', ' 105.44', ' 105.84', ' 105.88', ' 106.53', ' 106.62', ' 107.19', ' 107.57', ' 107.96', ' 108.1', ' 109.81', ' 109.84', ' 109.89', ' 112.11', ' 113.44', ' 113.64', ' 114.25', ' 116.71', ' 117.39', ' 117.81', ' 121.98', ' 70.31', ' 71.04', ' 73.84', ' 74.42', ' 74.45', ' 74.71', ' 75.0', ' 75.55', ' 75.59', ' 76.27', ' 77.42', ' 77.75', ' 78.28', ' 79.86', ' 80.18', ' 80.6', ' 81.78', ' 82.02', ' 82.43', ' 82.89', ' 82.92', ' 85.2', ' 86.28', ' 86.67', ' 87.31', ' 88.87', ' 89.38', ' 89.93', ' 90.03', ' 90.48', ' 90.95', ' 91.11', ' 92.4', ' 92.95', ' 92.97', ' 94.75', ' 95.54', ' 98.57', ' 98.84', ' 98.9']

最佳答案

因为您有一个字符串列表,所以它按字典顺序排序,如果您确定该列表只有浮点值(在字符串中),请在排序时使用 keys 参数将这些字符串转换为 float 。示例 -

l.sort(float)

如果你想将完整列表转换为 float (因为你说你想稍后取均值/中值等),那么使用 -

l = list(map(float, l))

对于 Python 2.x,不需要 list(..),因为 map() 返回一个列表。

如果您要将完整列表转换为 float ,那么您不需要上面带有 keys 参数的 sort() 方法,正常的 .sort() 应该可以工作。

关于python - 使用 .sort() 对列表中的数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32119258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com