python中的Max和Min方法,返回不正确的值

ash*_*d23 0 python max min string-comparison

我刚刚从编程语言中开始使用Python,我正在编写一个从文件中读取以检索值的程序.目前我有问题的程序从文件中读取并将某些值放入元组中,但是,我现在面临的问题是从python中的元组列表返回最小值和最大值,值列表我在元组列表中有:

tuple = ('44.0', '34.0', '17.0', '6.0','15.0') 
Run Code Online (Sandbox Code Playgroud)

然而,当我max打电话给max(tuple)我时6.0,我的结果而不是正确答案44.0.同样,如果我尝试使用返回最小值min(tuple).相反,我得到的是价值,15.0而不是正确的价值6.0.

拜托,您能告诉我如何解决这个问题,以便我能够返回正确的值吗?

cs9*_*s95 7

默认情况下,字符串的比较是字典的.这意味着"9"在字典上大于"10",因为ASCII值"9"(57)大于ASCII值"1"(49),依此类推.

如果要将这些字符串值与实际数值进行比较,则必须将key参数传递给max/ min:

max(tupple, key=float)
# '44.0'

min(tupple, key=float)
# '6.0'
Run Code Online (Sandbox Code Playgroud)

当然,这要求所有元组值都是浮点数/整数的字符串表示形式.如果你有一个非数字字符串(例如'abc'),这是行不通的.