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"))

¿Qué significa key=len? key se usa en dict ¿verdad? ¿No puedo entender la sintaxis aquí max(nw.split(), key=len)?

0
user12067509 10 oct. 2019 a las 07:41

4 respuestas

La mejor respuesta
max(nw.split(),key=len)

Aquí, la función máxima max(iterator, default, key=function) toma 3 argumentos primero es iterador como lista, tupla o diccionario.

El segundo parámetro es el valor predeterminado para devolver si el iterador está vacío, el segundo parámetro es opcional.

El tercer parámetro es un argumento de palabra clave que es key=function tenemos que pasar una función que toma un parámetro y cada valor en el iterador se pasa a esta función, por lo que en las bases del valor de retorno de esta función nuestro {{ La función X1}} nos da salida.

El tercer parámetro también es un parámetro opcional.

0
Abhishek-Saini 10 oct. 2019 a las 04:59

Aquí key es para el método max(). Dado que esta función es encontrar la palabra más larga en la cadena, está tratando de encontrar la palabra con max length, por lo tanto, key = len

Ejemplo:

max(111,222,333,444,555,999) = 999

max(111,222,333,444,555,999, key = lambda x:x%3 ) = 111

0
moys 10 oct. 2019 a las 05:06

max significa maximum, pero ¿qué métrica estás tratando de encontrar? Ahí es donde entra el key. Aquí, el key es len (longitud) que es el que está tratando de encontrar el elemento con la longitud más alta. En el caso de las palabras, no puede usar simplemente mayor o menor que, por lo tanto, debe especificar un key con el que determine el patrón. Por ejemplo:

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

Puede pensar en las claves como las claves en el diccionario, ya que la clave aquí es len, el dict sería como: {4: 'this', 2: 'an', 7: 'example'} Por lo tanto, devolverá el valor del key (7) más alto, es decir, example. También puede definir claves personalizadas:

>>> 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'

La analogía del diccionario sería: {2:'standing', 1: 'a', 3: 'queue'} Entonces la respuesta será queue

1
Sayandip Dutta 10 oct. 2019 a las 04:58

Tienes razón en que los diccionarios contienen asignaciones de claves a valores. Sin embargo, en este caso particular, key es solo uno de los parámetros de la función max. Permite a la persona que llama especificar una función de clasificación. Para obtener más información, consulte https://docs.python.org/3/library /functions.html#max.

1
mackorone 10 oct. 2019 a las 04:47
58315566