Python 用两位数和一位数计算最大值

Python 用两位数和一位数计算最大值,python,csv,max,Python,Csv,Max,我目前正在开发一个代码,计算出csv文件中的最高分数。例如,如果分数为10分和4分,则最高分数应为4分。但是,如果数字为10,则不起作用。如果数字是5和7或任何1位数字,则可以正常工作 这是我用来计算每个用户得分的最大值的代码 high = max(row[2:4]) # finds the highest score from the row 2:4 high = str("0") + str(high) # adds a 0 in front of the high score so th

我目前正在开发一个代码,计算出csv文件中的最高分数。例如,如果分数为10分和4分,则最高分数应为4分。但是,如果数字为10,则不起作用。如果数字是5和7或任何1位数字,则可以正常工作

这是我用来计算每个用户得分的最大值的代码

high = max(row[2:4]) # finds the highest score from the row 2:4
high = str("0") + str(high) # adds a 0 in front of the high score so that it could be used for sorting
row.insert( 6, high) #insert the high value on row 6
write.writerows([row[:7]])
任何帮助或建议都将不胜感激。
谢谢。

我继续往下猜,在比较10和4时,你的意思是10应该是高分,而不是。在这种情况下,您的问题几乎肯定是由使用字符串引起的:

In [12]: max("10","4")
Out[12]: '4'

In [13]: max(10,4)
Out[13]: 10
我从writerows中假设您正在使用
csv
库。该库不会对字符串进行任何转换,因此,当您认为您在处理数字时,实际上是在处理字符串,在比较字符串时,“4”和“10”首先通过它们的第一个字符进行比较

一个好的修复方法是在读取csv文件时进行转换,但一个快速修复方法只是使用以下内容:

high = max(int(x) for x in row[2:4])

“例如,如果分数为10和4,则最高分数应为4。”这是为什么?您标记了
浮点
,但看起来您正在处理CSV文件中的值,这些值都是字符串。字符串按字母顺序排序,因此1和10都在4之前。将它们转换为数字,以获得您期望的排序顺序。@Totem抱歉,我的意思是10应该是最高分。我的错:p