Python3.7中min()和max()实际上是如何推算的?

Python3.7中min()和max()实际上是如何推算的?

问题描述:

tup4 =('3','133','1.43','-10','-1.5')
tup5 =(3,133,1.43,-10,-1.5)
print(min(tup4),min(tup5),max(tup4),max(tup5))

输出结果为-1.5 -10 3 133,为什么不是-10 -10 133 133?

tup4是的值是字符串,是按照ASCII码来排序的, - 号在 . 号前面,在数字前面

你tup4是的值是字符串,按字符串进行比较

tup4 =('3','133','1.43','-10','-1.5')
tup5 =(3,133,1.43,-10,-1.5)

# max与min函数可以接收一个key参数(函数)
max(tup4, key=lambda x:float(x)) # '133'
min(tup4, key=lambda x:float(x)) # '-10'

# 同样sorted或者sort也可以接受一个key参数
sorted(tup4, key=lambda x:float(x))[0] # '133'
sorted(tup4, key=lambda x:float(x))[-1] # '-10'