python-max函数
巨人的肩膀python奇技淫巧——max/min函数的用法使用’key’和lambda表达式的python max函数例1:获取链表绝对值最大的元素。testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111]print(max(testlist, key=abs))#返回 -20.3key关键字的作用是,对每个testlist元素先使用key指定的functi
max函数可以用于绝大部分求最大或最小的问题上。
巨人的肩膀
python奇技淫巧——max/min函数的用法
使用’key’和lambda表达式的python max函数
例1:获取链表绝对值最大的元素。
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111]
print(max(testlist, key=abs))
#返回 -20.3
key关键字的作用是,对每个testlist元素先使用key指定的function来处理,然后再比较、返回预期的元素。
例2:key参数使用自定义函数。
def func(n):
return abs(n)
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111]
print(max(testlist, key=func))
#返回 -20.3
例3:使用lambda函数作为key的参数。
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111]
print(max(testlist, key=lambda x: abs(x))) #结果与例1、例2一致
例4:返回字典中Value最大对应的Key。
probabilities_dict = {'Sunny': 0.30, 'Cloudy': 0.35, 'Windy': 0.15, 'Rainy': 0.20}
print(max(probabilities_dict, key=lambda x: probabilities_dict[x])) #返回 Cloudy
print(max(probabilities_dict, key=probabilities_dict.get)) #返回 Cloudy
例4:统计一个整型序列中出现次数最多的整数及其出现次数。
输入格式:输入在一行中给出序列中的N个整数。数字间以空格分隔。
输入样例:10 3 2 -1 5 3 4 3 0 3 2
输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。
输出样例:3 4
#第一种解法
from collections import Counter
l = list(map(int, input().split()))
cnt = Counter(l)
print(*cnt.most_common(1)[0])
#第二种解法
l = list(map(int, input().split()))
ans = max(set(l), key=l.count)
print(ans, l.count(ans))
例5:本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。
输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串,如果字符串的长度相同,则输出先输入的字符串。
# 使用max进行解决
n = int(input())
ans = ''
for _ in range(n):
s = input()
ans = max(ans, s, key=len)
print(f'The longest is: {ans}')
# 正常判断解决
n = int(input())
ans = ''
StrLen = 0
for _ in range(n):
s = input()
tmp = len(s)
if tmp > StrLen:
StrLen = tmp
ans = s
print(f'The longest is: {ans}')
更多推荐
所有评论(0)