Python max函数中key的用法及原理解析

2021-09-20 0 892

一、背景

起源于一个问题:怎样找到字符串中出现次数最多的字符

其实使用max函数就能很轻松的解决这个问题:

代码:

str1 = \"AAAaaa8888899sssss\"
print(max(str1, key=str1.count))

结果:8

二、原理

max()函数用于获得给定的可迭代对象中的最大值。

key是max()函数的一个参数,它辅助max函数找到最大元素。当max() 函数中有 key 参数时,求的是 value 的最大值,当没有 key 参数时,求的是 key 的最大值。

key可以对要比较的对象进行一些处理,以达到对对象进行特定规则的比较。

要在比较之前修改对象,或基于特定的属性/索引进行比较,必须使用key参数。

三、用法

获取字典中key的最大值

dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1))
print(max(dict1.keys()))

获取字典中最大value对应的key值

dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1, key=dict1.get))
print(max(dict1, key=lambda x: dict1[x]))

获取字典中最大value的值

dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1.values()))

获取句子中的最长单词

str3 = \"Life is short , I use python\"
print(str3.split())
print(max(str3.split(), key=len))

获取list中的最大值

list1 = [\'11\', \'zzz\', \'22\', \'eee\']
print(max(list1))

获取list中的最大数值

list2 = [\'11\', \'3\', \'222\', \'67\']
print(max(list2, key=lambda x: int(x)))

获取list中的绝对值最大的值

list3 = [\'11\', \'-399\', \'222\', \'67\']
print(max(list2, key=lambda x: abs(int(x))))

获取元组list中指定索引的最大值

list4 = [(1, \'a\'), (3, \'c\'), (4, \'e\'), (-1, \'z\')]
print(max(list4, key=lambda x: x[1]))

四、实例

str1 = \"AAAaaa888ww8899sssss\"
print(max(str1, key=str1.count))
print(\'--------------------------\')
 
print(max(str1))
print(\'--------------------------\')
 
 
list1 = [\'11\', \'zzz\', \'22\', \'eee\']
print(max(list1))
print(\'--------------------------\')
 
list2 = [\'11\', \'-399\', \'222\', \'67\']
print(max(list2, key=lambda x: int(x)))
print(\'--------------------------\')
 
list3 = [\'11\', \'-399\', \'222\', \'67\']
print(max(list2, key=lambda x: abs(int(x))))
print(\'--------------------------\')
 
# list3 = [{\'age\': 20}, {\'age\': 23}]
# print(max(list3))
# print(\'--------------------------\')
 
list4 = [(1, \'a\'), (3, \'c\'), (4, \'e\'), (-1, \'z\')]
print(max(list4, key=lambda x: x[1]))
print(\'--------------------------\')
 
 
dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1, key=dict1.get))
print(max(dict1, key=lambda x: dict1[x]))
 
dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1))
print(max(dict1.keys()))
 
dict1 = {\'a\': \'11\', \'c\': \'22\', \'b\': \'33\'}
print(max(dict1.values()))
print(\'--------------------------\')

str3 = \"Life is short , I use python\"
print(str3.split())
print(max(str3.split(), key=len))
print(max(str3.split()))
print(\'--------------------------\')

运行结果:

Python max函数中key的用法及原理解析

以上就是Python max函数中key的用法的详细内容,更多关于Python max函数key用法的资料请关注自学编程网其它相关文章!

遇见资源网 Python Python max函数中key的用法及原理解析 http://www.ox520.com/29197.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务