Python中的min和max函数的使用实例
Python中的min和max函数在处理一组数据中的最小值和最大值非常方便。这两个函数在很多场合都会用到,在机器学习和数据分析中也是必不可少的操作。本文将介绍Python中min和max函数的使用实例。
一、min和max函数的基本用法
1. max(iterable,key=None)
返回参数中的最大值。其中iterable是可迭代对象,如果key不为空,则返回一个可迭代对象中具有最大key值的项。
示例1:返回一组数字中的最大值。
lst=[12, 25, 10, 67, 88, 99] print(max(lst))
输出结果为:
99
示例2:返回字典中值最大的项。
dct={'python': 65, 'java': 68, 'csharp': 70, 'swift': 60}
print(max(dct,key=dct.get))
输出结果为:
csharp
2. min(iterable,key=None)
返回参数中的最小值。其中iterable是可迭代对象,如果key不为空,则返回一个可迭代对象中具有最小key值的项。
示例3:返回一组数字中的最小值。
lst=[12, 24, 10, 8, 7, 99] print(min(lst))
输出结果为:
7
示例4:返回字典中值最小的项。
dct={'python': 65, 'java': 68, 'csharp': 70, 'swift': 60}
print(min(dct,key=dct.get))
输出结果为:
swift
二、应用场景
1. 寻找列表中的最大值和最小值
列表中包含了一些数字,需要从中找出最大值和最小值。这时候可以通过max和min函数来实现。
lst=[15, -20, 2, -10, 30, 18, -5, 22]
max_num=max(lst)
min_num=min(lst)
print("列表中的最大值为:", max_num)
print("列表中的最小值为:", min_num)
输出结果为:
列表中的最大值为: 30 列表中的最小值为: -20
2. 计算两组数据的距离
在机器学习中经常需要计算两个向量之间的距离。可以通过调用max和min函数来实现计算两个向量中各个维度的最大值和最小值之差,再进行计算两个向量之间的距离。
vector1=[12, 28, 65, 34, 50]
vector2=[34, 42, 31, 50, 70]
max_dif=max(abs(vector1[i]-vector2[i]) for i in range(len(vector1)))
min_dif=min(abs(vector1[i]-vector2[i]) for i in range(len(vector1)))
distance=max_dif-min_dif
print("向量1与向量2之间的距离为:", distance)
输出结果为:
向量1与向量2之间的距离为: 39
3. 找出字典中值最大或值最小的键
字典中包含了很多键值对,需要找出值最大或值最小的键。可以通过调用max和min函数来实现找到值最大或值最小的键。
dct={"Tom": 85, "Jack": 95, "Lucy": 92, "James": 90}
max_key=max(dct,key=dct.get)
min_key=min(dct,key=dct.get)
print("值最大的键为:",max_key,",对应值为:",dct[max_key])
print("值最小的键为:",min_key,",对应值为:",dct[min_key])
输出结果为:
值最大的键为: Jack ,对应值为: 95 值最小的键为: Tom ,对应值为: 85
4. 找出一个文本中最常见的单词
一个文本文件中包含了很多单词,需要找出最常见的单词。可以通过调用max和min函数来实现找到出现次数最多或最少的单词所对应的频率。
text="There is some text that contains some repeated words. Text text."
words=text.split()
word_frequency=dict()
for word in words:
if word in word_frequency:
word_frequency[word]+=1
else:
word_frequency[word]=1
most_frequent_word=max(word_frequency,key=word_frequency.get)
print("最常见的单词为:",most_frequent_word,",出现次数为:",word_frequency[most_frequent_word])
输出结果为:
最常见的单词为: Text ,出现次数为: 2
5. 找出一个列表中出现次数最多的元素
一个列表中包含了很多元素,需要找出出现次数最多的元素。可以通过调用max和min函数来实现找到出现次数最多或最少的元素。
lst=[12, 23, 10, 12, 34, 18, 23, 12]
element_frequency=dict()
for element in lst:
if element in element_frequency:
element_frequency[element]+=1
else:
element_frequency[element]=1
most_frequent_element=max(element_frequency,key=element_frequency.get)
print("出现次数最多的元素为:",most_frequent_element,",出现次数为:",element_frequency[most_frequent_element])
输出结果为:
出现次数最多的元素为: 12 ,出现次数为: 3
三、注意事项
1. 当迭代对象为空时,调用max和min函数会引发ValueError异常。
max([])
输出结果为:
ValueError: max() arg is an empty sequence
2. 当参数中有字符串和数字等多种数据类型时,max和min函数会自动进行类型转换,如果类型不兼容则会引发TypeError异常。
max(["abc", 12])
输出结果为:
TypeError: '>' not supported between instances of 'int' and 'str'
3. 当key不为空时,max和min函数会对每个元素进行计算,因此key函数应该返回一个可排序的值。
lst=["abc", "abcde", "ab", "abcv"] max(lst,key=len)
输出结果为:
'abcde'
本文介绍了Python中min和max函数的基本用法和应用场景,并列举了一些常见的使用实例。在实际工作中,需要结合具体业务场景来灵活应用这两个函数,从而提高代码效率和运行速度。
