python中的Max函数返回错误的结果

时间:2014-02-12 17:37:30

标签: python max

我试图从CSV文件中找到一组数字中的Max和Min。对于某些行,我的代码会为Max函数返回错误的数字。这是我的代码:

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

max(numrow, key=float)