欢迎访问宙启技术站
智能推送

Python中的min和max函数的使用实例

发布时间:2023-05-28 18:53:59

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函数的基本用法和应用场景,并列举了一些常见的使用实例。在实际工作中,需要结合具体业务场景来灵活应用这两个函数,从而提高代码效率和运行速度。