Python中的max()和min()函数的使用方法有哪些?
在Python中,max()和min()函数都是用来求取一个迭代对象中的最大值或最小值。它们可以用于任何可迭代对象,包括列表、元组、字典、字符串、集合等。
max()函数
max()函数主要用来求取一个可迭代对象中的最大值。它的常见用法如下:
1. 求取数字型序列的最大值
可以传入一个数字型序列作为参数,如列表、元组等:
a = [1, 5, 2, 8, 3] print(max(a))
输出结果为:
8
也可以将多个参数传入:
print(max(1, 5, 2, 8, 3))
输出结果同样为8。
2. 求取字符串序列的最大值
如果传入的是字符串序列,max()函数会按照字典序比较元素,返回最大的字符串:
a = ['apple', 'banana', 'cherry', 'durian'] print(max(a))
输出结果为:
durian
3. 求取字典中的最大值
如果传入的是字典类型,max()函数默认会按照字典中的键进行比较,并返回具有最大键的键值对:
a = {'apple': 3, 'banana': 2, 'cherry': 5, 'durian': 4}
print(max(a))
输出结果为:
durian
如果想要返回具有最大值的键值对,可以使用字典的items()方法把字典转换为包含键值对的元组列表,然后指定key参数:
a = {'apple': 3, 'banana': 2, 'cherry': 5, 'durian': 4}
print(max(a.items(), key=lambda x: x[1]))
输出结果为:
('cherry', 5)
上面的lambda表达式指定了比较的关键字为键值对的第二个元素,即值。
min()函数
min()函数和max()函数的用法相似,只是求取的是最小值。常见用法如下:
1. 求取数字型序列的最小值
同样可以传入一个数字型序列作为参数,如列表、元组等:
a = [1, 5, 2, 8, 3] print(min(a))
输出结果为:
1
2. 求取字符串序列的最小值
如果传入的是字符串序列,min()函数会按照字典序比较元素,返回最小的字符串:
a = ['apple', 'banana', 'cherry', 'durian'] print(min(a))
输出结果为:
apple
3. 求取字典中的最小值
如果传入的是字典类型,min()函数默认会按照字典中的键进行比较,并返回具有最小键的键值对:
a = {'apple': 3, 'banana': 2, 'cherry': 5, 'durian': 4}
print(min(a))
输出结果为:
apple
同样,如果想要返回具有最小值的键值对,可以使用items()方法和key参数:
a = {'apple': 3, 'banana': 2, 'cherry': 5, 'durian': 4}
print(min(a.items(), key=lambda x: x[1]))
输出结果为:
('banana', 2)
总结
max()和min()函数非常方便,可用来快速求取一个可迭代对象中的最大值或最小值。需要注意的是,对于非数字型序列,max()和min()函数的比较规则是按照字典序进行比较,而非元素本身的大小,因此需要格外注意。另外,max()和min()函数可以接受多个参数,用法类似于内置函数sum()。
