Cómo utilizar las funciones all, any, max y min en Python

Índice
  1. Introducción
  • Prerrequisitos
  • Usandoall
  • Usandoany
  • Usandomax
  • Usandomin
  • Conclusión
  • El autor seleccionó el Fondo de Ayuda COVID-19 para recibir una donación como parte del programa Write for DOnations.

    Introducción

    Python incluye una serie de funciones integradas: son funciones globales de Python que se pueden llamar desde cualquier código Python sin importar módulos adicionales. Por ejemplo, siempre puedes llamar a la printfunción integrada para generar texto.

    Varias de las funciones integradas ( all, any, maxy minentre ellas) toman iterables de valores como argumento y devuelven un único valor. Un iterable es un objeto de Python que se puede "iterar", es decir, devolverá elementos en una secuencia de modo que pueda usarlo en un forbucle. Las funciones integradas son útiles cuando, por ejemplo, desea determinar si todos o alguno de los elementos de una lista cumplen con ciertos criterios, o encontrar el elemento más grande o más pequeño en una lista.

    En este tutorial, utilizará las funciones integradas all, any, maxy min.

    Prerrequisitos

    Para aprovechar al máximo este tutorial, se recomienda tener:

    • Algunos conocimientos de programación en Python 3. Puedes revisar nuestra serie de tutoriales Cómo codificar en Python 3 para obtener conocimientos básicos.

    • La consola interactiva de Python: si desea probar el código de ejemplo de este tutorial, puede utilizar el tutorial Cómo trabajar con la consola interactiva de Python.

    Usandoall

    La función incorporada allverifica si cada elemento de un iterable es True. Por ejemplo:

    all([True, True])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputTrue

    En este primer ejemplo, se llama ally se le proporciona una lista con dos elementos (dos Truevalores booleanos). Como cada elemento del iterable es True, el resultado fue True.

    allretornará Falsesi uno o más elementos en el iterable dado son False:

    all([True, False, True])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputFalse

    Se llama allcon una lista que contiene tres elementos, incluido un Falsevalor booleano. Dado que uno de los elementos del iterable era False, la salida de la llamada a allera False.

    En particular, alldeja de iterar y regresa inmediatamente Falsetan pronto como encuentra la primera Falseentrada en un iterable. Por lo tanto, allpuede ser útil si desea verificar condiciones sucesivas que pueden basarse entre sí, pero regresa inmediatamente tan pronto como se cumple una condición False.

    Un caso especial que debemos tener en cuenta es cuando allse proporciona un iterable vacío:

    all([])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputTrue

    Cuando se proporciona allun iterable vacío (por ejemplo, una lista vacía como all([])), su valor de retorno es True. Por lo tanto, alldevuelve Truesi cada elemento del iterable es Verdadero o hay 0 elementos.

    alles particularmente útil cuando se combina con generadores y condiciones personalizadas. El uso allsuele ser más breve y conciso que si escribiera un forbucle completo. Consideremos un ejemplo para averiguar si hay elementos en una lista que comiencen con "s":

    animals = ["shark", "seal", "sea urchin"]all(a.startswith("s") for a in animals)

    Si ejecuta el código anterior, recibirá este resultado:

    OutputTrue

    Se llama allcon un generador como argumento. El generador produce un valor booleano para cada elemento de la animalslista en función de si el animal comienza o no con la letra s. El valor de retorno final se Truedebe a que cada elemento de la animalslista comienza con s.

    Nota: A menudo, puede utilizar expresiones de generador en lugar de listas por comprensión como una forma de ahorrar memoria. Por ejemplo, considere all(i 8 for i in range(3))y all([i 8 for i in range(3)]). Ambas instrucciones devuelven Trueporque 0, 1, 2 son todos menores que 8. Sin embargo, el segundo ejemplo (que utiliza una lista por comprensión) tiene la sobrecarga adicional de crear implícitamente una lista de tres entradas de longitud ( [True, True, True]) y luego pasar esa lista a la allfunción. El primer ejemplo (que utiliza expresiones de generador), por el contrario, pasa un objeto generador a la allfunción, sobre el cual la allfunción itera directamente sin la sobrecarga de una lista intermedia.

    Tenga en cuenta que el código equivalente escrito utilizando un bucle completo forhabría sido significativamente más detallado:

    animals = ["shark", "seal", "sea urchin"]def all_animals_start_with_s(animals):    for a in animals:        if not a.startswith("s"):            return False    return Trueprint(all_animals_start_with_s(animals))

    Sin all, su código para determinar si todos los animales comienzan con la letra srequiere varias líneas más para implementarse.

    A continuación, verás la función hermana de all: any.

    Usandoany

    Puede utilizar la función incorporada anypara comprobar si algún elemento de un iterable es True. Por ejemplo:

    any([False, True])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputTrue

    Llamas anyy le das una lista con dos elementos (un Falsevalor booleano y un Truevalor booleano). Como uno o más elementos del iterable eran True, la salida también era True.

    anyretornará Falsesi, y solo si, 0 de los elementos en el iterable dado son True:

    all([False, False, False])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputFalse

    Se llama anycon una lista que contiene tres elementos (todos Falsevalores booleanos). Dado que 0 de los elementos del iterable es True, la salida de la llamada a anyes False.

    En particular, anydeja de iterar y regresa inmediatamente Truetan pronto como encuentra la primera Trueentrada en un iterable. Por lo tanto, anypuede ser útil si desea verificar condiciones sucesivas, pero regresa inmediatamente tan pronto como se cumple una condición True.

    any—al igual que su método hermano— es allparticularmente útil cuando se combina con generadores y condiciones personalizadas (en lugar de un forbucle completo). Consideremos un ejemplo para averiguar si hay elementos en una lista que terminan con "urchin":

    animals = ["shark", "seal", "sea urchin"]any(s.endswith("urchin") for s in animals)

    Recibirás este resultado:

    OutputTrue

    Se llama anycon un generador como argumento. El generador produce un valor booleano para cada elemento de la animalslista en función de si el animal termina o no con urchin. El valor de retorno final se Truedebe a que un elemento de la animalslista termina con urchin.

    Nota: Cuando anyse proporciona un iterable vacío (por ejemplo, una lista vacía como any([])), su valor de retorno es False. Por lo tanto, anydevuelve Falsesi hay 0 elementos en el iterable o si todos los elementos en el iterable también son False.

    A continuación, revisaremos otra función incorporada: max.

    Usandomax

    La función incorporada maxdevuelve el elemento más grande indicado en sus argumentos. Por ejemplo:

    max([0, 8, 3, 1])

    maxSe le proporciona una lista con cuatro números enteros como argumento. El valor de retorno de maxes el elemento más grande de esa lista: 8.

    El resultado será el siguiente:

    Output8

    Si se dan dos o más argumentos posicionales (a diferencia de un solo argumento posicional con un iterable), maxdevuelve el mayor de los argumentos dados:

    max(1, -1, 3)

    Si ejecuta el código anterior, recibirá este resultado:

    Output3

    maxSe le dan tres argumentos individuales, el mayor de los cuales es 3. Por lo tanto, el valor de retorno de la llamada a maxes 3.

    Al igual anyque y all, maxes particularmente útil porque requiere menos líneas para su uso que el código equivalente escrito como un forbucle completo.

    maxTambién puede trabajar con objetos más complejos que los números. Por ejemplo, puede utilizar maxdiccionarios u otros objetos personalizados en su programa. maxPuede alojar estos objetos utilizando su argumento de palabra clave llamado key.

    Puede utilizar la keypalabra clave argument para definir una función personalizada que determine el valor utilizado en las comparaciones para determinar el valor máximo. Por ejemplo:

    entries = [{"id": 9}, {"id": 17}, {"id": 4}]max(entries, key=lambda x: x["id"])

    El resultado será el siguiente:

    Output{'id': 17}

    Llamas maxcon una lista de diccionarios como entrada. Proporcionas una lambdafunción anónima como keyargumento de palabra clave. maxllama a la lambdafunción para cada elemento de la entrieslista y devuelve el valor de la "id"clave del elemento dado. El valor de retorno final es el segundo elemento en entries: {"id": 17}. El segundo elemento en entriestenía el "id"valor más grande y, por lo tanto, se consideró que era el elemento máximo.

    Tenga en cuenta que cuando maxse llama con un iterable vacío, se niega a operar y, en su lugar, genera un ValueError:

    max([])

    Si ejecuta este código, recibirá el siguiente resultado:

    OutputTraceback (most recent call last):  File "max.py", line 1, in module    max([])ValueError: max() arg is an empty sequence

    Llama maxcon una lista vacía como argumento. maxno acepta esto como una entrada válida y genera una ValueErrorexcepción en su lugar.

    maxtiene una contraparte llamada min, que revisarás a continuación.

    Usandomin

    La función incorporada mindevuelve el elemento más pequeño proporcionado en sus argumentos. Por ejemplo:

    min([8, 0, 3, 1])

    Proporciona minuna lista con cuatro números enteros como argumento. El valor de retorno mines el elemento más pequeño de esa lista: 0.

    La salida será:

    Output0

    Si se dan dos o más argumentos posicionales (a diferencia de un solo argumento posicional con un iterable), mindevuelve el más pequeño de los argumentos dados:

    min(1, -1, 3)

    Si ejecuta el código anterior, recibirá este resultado:

    Output-1

    Proporciona mintres argumentos individuales, el más pequeño de los cuales es -1. Por lo tanto, el valor de retorno de la llamada a mines -1.

    Al igual que max, minadmite el argumento de palabra clave named keypara que puedas pasarle objetos más complejos que números. El uso del keyargumento te permite usar la minfunción con cualquier objeto personalizado que tu programa pueda definir.

    Puede utilizar la keypalabra clave argument para definir una función personalizada que determine el valor utilizado en las comparaciones para determinar el valor mínimo. Por ejemplo:

    entries = [{"id": 9}, {"id": 17}, {"id": 4}]min(entries, key=lambda x: x["id"])
    Output{'id': 4}

    Llamas mincon una lista de diccionarios como entrada. Proporcionas una lambdafunción anónima como keyargumento de palabra clave. minllama a la lambdafunción para cada elemento de la entrieslista y devuelve el valor de la "id"clave del elemento dado. El valor de retorno final es el tercer elemento en entries: {"id": 4}. El tercer elemento en entriestenía el valor reducido "id", y por lo tanto se consideró el elemento mínimo.

    Por ejemplo max, cuando se llama mincon un iterable vacío, se niega a funcionar y, en su lugar, genera un ValueError:

    min([])

    Si ejecuta el código anterior, recibirá este resultado:

    OutputTraceback (most recent call last):  File "min.py", line 1, in module    min([])ValueError: min() arg is an empty sequence

    Llama mincon una lista vacía como argumento. minno acepta esto como una entrada válida y genera una ValueErrorexcepción en su lugar.

    Conclusión

    En este tutorial, utilizaste las funciones integradas de Python all, any, maxy min. Puedes obtener más información sobre las funciones all, any, maxy miny otras funciones integradas de Python en la documentación de Python.

    Para obtener más información sobre otras funciones integradas de Python, también puede consultar Funciones integradas de Python 3 para trabajar con números, Cómo usar la función de mapa de Python y Cómo usar la función de filtro de Python.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion