为什么在元组中使用键?以及这里的语法是什么

时间:2019-10-10 04:41:24

标签: python

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)不能理解语法?

4 个答案:

答案 0 :(得分:1)

您是对的,字典包含从键到值的映射。不过,在这种特定情况下,application.properties只是key函数的参数之一。它允许调用者指定排序功能。有关更多信息,请参见https://docs.python.org/3/library/functions.html#max

答案 1 :(得分:1)

max的意思是maximum,但是您要查找什么最大度量?这就是key进入的地方。这里,keylen(长度),即您要查找长度最大的元素。对于单词,您不能简单地使用大于或小于,因此您需要指定key来确定模式。例如:

>>> words = ['this','is','an','example']
>>> max(words, key=len)
'example'

您可以将这些键视为字典中的键,因为此处的键为len,所以字典将像: {4: 'this', 2: 'an', 7: 'example'} 因此它将返回最高的key7)的值,即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()函数为我们提供输出。

第三个参数也是可选参数。