一、背景
起源于一个问题:怎样找到字符串中出现次数最多的字符
其实使用max函数就能很轻松的解决这个问题:
代码:
1
2
|
str1 = "AAAaaa8888899sssss"
print ( max (str1, key = str1.count))
|
结果:8
二、原理
max()函数用于获得给定的可迭代对象中的最大值。
key是max()函数的一个参数,它辅助max函数找到最大元素。当max() 函数中有 key 参数时,求的是 value 的最大值,当没有 key 参数时,求的是 key 的最大值。
key可以对要比较的对象进行一些处理,以达到对对象进行特定规则的比较。
要在比较之前修改对象,或基于特定的属性/索引进行比较,必须使用key参数。
三、用法
获取字典中key的最大值
1
2
3
|
dict1 = { 'a' : '11' , 'c' : '22' , 'b' : '33' }
print ( max (dict1))
print ( max (dict1.keys()))
|
获取字典中最大value对应的key值
1
2
3
|
dict1 = { 'a' : '11' , 'c' : '22' , 'b' : '33' }
print ( max (dict1, key = dict1.get))
print ( max (dict1, key = lambda x: dict1[x]))
|
获取字典中最大value的值
1
2
|
dict1 = { 'a' : '11' , 'c' : '22' , 'b' : '33' }
print ( max (dict1.values()))
|
获取句子中的最长单词
1
2
3
|
str3 = "Life is short , I use python"
print (str3.split())
print ( max (str3.split(), key = len ))
|
获取list中的最大值
1
2
|
list1 = [ '11' , 'zzz' , '22' , 'eee' ]
print ( max (list1))
|
获取list中的最大数值
1
2
|
list2 = [ '11' , '3' , '222' , '67' ]
print ( max (list2, key = lambda x: int (x)))
|
获取list中的绝对值最大的值
1
2
|
list3 = [ '11' , '-399' , '222' , '67' ]
print ( max (list2, key = lambda x: abs ( int (x))))
|
获取元组list中指定索引的最大值
1
2
|
list4 = [( 1 , 'a' ), ( 3 , 'c' ), ( 4 , 'e' ), ( - 1 , 'z' )]
print ( max (list4, key = lambda x: x[ 1 ]))
|
四、实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
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用法的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/u013250071/article/details/118220139