def LongestWord(sen):
nw = ""
for letter in sen:
if letter.isalpha() or letter.isnumeric():
nw += letter
else :
nw += " "
return max(nw.split(),key=len)
print(LongestWord("Hello world"))
key=len
是什么意思。 key
中使用了dict
对吗?我在这里max(nw.split(), key=len)
不能理解语法?
答案 0 :(得分:1)
您是对的,字典包含从键到值的映射。不过,在这种特定情况下,application.properties
只是key
函数的参数之一。它允许调用者指定排序功能。有关更多信息,请参见https://docs.python.org/3/library/functions.html#max。
答案 1 :(得分:1)
max
的意思是maximum
,但是您要查找什么最大度量?这就是key
进入的地方。这里,key
是len
(长度),即您要查找长度最大的元素。对于单词,您不能简单地使用大于或小于,因此您需要指定key
来确定模式。例如:
>>> words = ['this','is','an','example']
>>> max(words, key=len)
'example'
您可以将这些键视为字典中的键,因为此处的键为len
,所以字典将像:
{4: 'this', 2: 'an', 7: 'example'}
因此它将返回最高的key
(7
)的值,即example
。
您还可以定义自定义键:
>>> def vowels(word):
... '''this returns number of vowels
... in a word'''
... v = 'aeiou'
... ctr = 0
... for char in word:
... if char in v:
... ctr += 1
... return ctr
>>> words = ['standing','in','a','queue']
>>> max(words, key = vowels)
'queue'
字典的类推是:
{2:'standing', 1: 'a', 3: 'queue'}
因此答案将是queue
答案 2 :(得分:0)
此处key
用于方法max()
。
由于此功能是查找字符串中最长的单词,因此您试图查找最大为length
,因此为key = len
示例:
max(111,222,333,444,555,999) = 999
max(111,222,333,444,555,999, key = lambda x:x%3 ) = 111
答案 3 :(得分:0)
max(nw.split(),key=len)
在这里,max(iterator, default, key=function)
max函数首先接受3个参数,例如list,tuple或dictonay之类的迭代器。
第二个参数是默认值,如果迭代器为空,则返回默认值,第二个参数是可选的。
第三个参数是关键字参数key=function
,我们必须传递一个带有一个参数的函数,并将迭代器中的每个值传递给该函数,以便基于该函数的返回值我们的max()
函数为我们提供输出。
第三个参数也是可选参数。