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

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

格式及参数

1
2
min(iterable, *[, key, default])
min(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(min(str_1))
print(min(str_2))
print(min(str_1, str_2))
print(min(list_))


'''输出
1
A
123
aa
'''

只传入 iterable 和 default

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


'''输出
1
None
'''

只传入 iterable 和 key

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

print(min(str_1, key=None)) # 获取ascii码最小的字符,可以没有 key 实参
print(min(str_1.split(), key=len)) # 获取最短单词


'''输出

min
'''

传入 iterable 、 key 及 default

1
2
3
4
5
6
7
str_1 = ''
print(min(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(min(list_1))
print(min(list_2))


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

列表嵌套字典

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

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


'''输出
{'a': 520}
'''

返回字典值最小的键

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

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


'''输出
b
'''