Python中的Max函数返回错误结果 [英] Max function in python returning wrong results

查看:599
本文介绍了Python中的Max函数返回错误结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从CSV文件中的一组数字中找到最大值和最小值.我的代码在某些行中不断为Max函数返回错误的数字.这是我的代码:

I am trying to find the Max and Min in a set of numbers from a CSV file. My code keeps returning the wrong number for Max function for some rows. Here is my code:

with open('Cortex_vs_Liver_trial.csv', newline='') as infile:
    reader = csv.reader(infile)

    for row in reader:
        print(row)
        print('The maximun is:', max(row))
        print('The minimum is:', min(row))

我的输出示例:

['86.21', '100.00', '96.30']
The maximun is: 96.30
The minimum is: 100.00

我不确定我做错了什么.一些建议将不胜感激.

I am not sure what I have done wrong. Some advice would be appreciated.

推荐答案

您的列表元素是字符串.您需要将它们转换为float,以避免按字典顺序进行比较(按字母顺序一次比较一个字符,其中'100' < '2'因为1 < 2)

Your list elements are strings. You need to convert them to float to avoid comparing lexicographically (alphabetically, one character at a time, where '100' < '2' because 1 < 2)

numrow = [float(x) for x in row]
print('The maximun is:', max(numrow))
print('The minimum is:', min(numrow))

除非您实际上想要字符串,否则不要创建新列表,只需将key=float传递给您的max()函数:

Unless you actually want strings, in which case don't make the new list, and just pass key=float to your max() function:

max(numrow, key=float)

这篇关于Python中的Max函数返回错误结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆