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

2024-04-18 22:07:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用Python,因为我很长时间没有接触编程语言,我正在编写一个从文件中读取值的程序。目前,我有问题的程序从文件中读取并将某些值放入元组中,但是,我现在面临的问题是从python中的元组列表中返回最小值和最大值,元组列表中的值列表是:

tuple = ('44.0', '34.0', '17.0', '6.0','15.0') 

然而,当我使用max调用max(tuple)时,我得到的结果是{},而不是{}的正确答案。同样,如果我尝试使用min(tuple)返回最小值。相反,我得到了15.0的值,而不是{}的正确值。在

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


Tags: 答案程序列表min编程语言max元组tuple
3条回答

tuple的元素是字符串,可以给max和min赋予key函数:

 max(tupple, key=float) 44.0
 min(tupple, key=float) 6.0

您得到的最大值是“6.0”,因为您实际比较的是字符串,而不是整数/浮点。在

字符串比较是按字典顺序进行的,因此最大值为“6.0”。在

您可以传递一个key参数,以便比较是算术的,而不是字典式的,如下所示:

max(yourTupple, key = float)

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

如果要用实际的数值比较这些字符串值,则必须将key参数传递给^{}/^{}

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

min(tupple, key=float)
# '6.0'

当然,这要求所有元组值都是float/int的字符串表示。如果你有一个非数字字符串('abc',例如),这是行不通的。在

相关问题 更多 >