Python max()内置函数 --返回可迭代对象中最大的元素

max() 函数返回可迭代对象中最大的元素,或者返回两个及以上实参中最大的。有多个最大元素时,只返回第一个找到的

格式及参数

1
2
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

iterable :可迭代对象,每个元素需同类型。可以是str、list、dict、tuple、set

key :可选参数,指定排序函数用的参数,3.8版可以为 None

default :可选参数,当可迭代对象为空时返回的值。如果可迭代对象为空,并且没有给 default ,则会触发 ValueError

参考资料

实例(3.8.8)

排序规则按 ASCII码 进行比较

不同实参例子

只传入 iterable ,这是最常用的一种

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
str_1 = '123'
str_2 = 'ABC'
list_ = ['aa', 'ac', 'b']

print(max(str_1))
print(max(str_2))
print(max(str_1, str_2))
print(max(list_))


'''输出
3
C
ABC
b
'''

只传入 iterable 和 default

1
2
3
4
5
6
7
8
9
10
str_1 = '123'
str_2 = ''
print(max(str_1, default=None))
print(max(str_2, default=None))


'''输出
3
None
'''

只传入 iterable 和 key

1
2
3
4
5
6
7
8
9
10
str_1 = 'python max'

print(max(str_1, key=None)) # 获取ascii码最大的字母,可以没有 key 实参
print(max(str_1.split(), key=len)) # 获取最长单词


'''输出
y
python
'''

传入 iterable 、 key 及 default

1
2
3
4
5
6
7
str_1 = ''
print(max(str_1.split(), key=len, default=None))


'''输出
None
'''

其他例子

列表嵌套元组

1
2
3
4
5
6
7
8
9
10
11
12
list_1 = [(1, 2, 3), (2, 2, 3), (1, 1, 3)]
list_2 = [(2, 2, 4), (2, 1, 4), (2, 1, 5)]

# 返回并行位置最大的元素
print(max(list_1))
print(max(list_2))


'''输出
(2, 2, 3)
(2, 2, 4)
'''

列表嵌套字典

1
2
3
4
5
6
7
8
9
10
11
12
list_1 = [
{'a': 1314},
{'a': 520}
]

a = max(list_1, key=lambda x: x['a'])
print(a)


'''输出
{'a': 1314}
'''

返回字典值最大的键

1
2
3
4
5
6
7
8
9
10
11
12
dict_1 = {
'a': 1314,
'b': 520
}

a = max(dict_1, key=lambda x: dict_1[x]) # 比较值的整个数字
print(a)


'''输出
a
'''