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)
?
4 respuestas
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.
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
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
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.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.