Cómo usar la lista de Python (y cuándo no usarlos)
Es posible que hayas oído hablar de la comprensión de la lista de Python. Tal vez sea algo que hayas usado sin entenderlo. Ahora es el momento de aprender, ya que cubrimos todo lo que necesita saber acerca de la comprensión de listas en Python.
Antes de comenzar, vale la pena actualizarse sobre cómo funcionan los arrays y las listas en Python. Cómo funcionan los arrays y las listas. Cómo funcionan los arrays y las listas. Las listas y listas son algunas de las estructuras de datos más útiles en la programación, aunque pocas personas los utilizan. a su máximo potencial. Más información y cómo usar los diccionarios de Python. Diccionario de Python: cómo puede usarlo para escribir mejor Código de Python: cómo puede usarlo para escribir mejor Código Piense en un diccionario de Python como conjuntos no ordenados de pares clave-valor. En este artículo, le presentamos cómo trabajar con ellos y cómo usarlos para mejorar su código Python. Lee mas .
¿Qué es la comprensión de la lista de Python??
La comprensión de la lista suena compleja pero en realidad no lo es. En Python, es simplemente una forma rápida de filtrar o refinar una lista según algunos criterios.
Le ahorra tener que escribir varias líneas de código (especialmente si ya está en un bucle), y mantiene ordenada la legibilidad de su código.
Sin embargo, tenga cuidado, ya que la comprensión de la lista no es siempre la respuesta. Es fácil dejarse llevar y escribir comprensiones complejas que son difíciles de leer. A veces, escribir más código es mejor, especialmente si ayuda a la legibilidad. Cumpla con tareas simples y mantenga el código bajo una sola responsabilidad.
Cómo utilizar listas de comprensión en Python
Nota: Todos estos ejemplos utilizan Python 3.6. Si no está seguro de las diferencias entre Python 3 y Python 2, asegúrese de leer nuestras Preguntas frecuentes sobre Python Las preguntas más frecuentes sobre la programación de Python Las preguntas más frecuentes sobre la programación de Python En este artículo, lo guiaremos a través de todo lo que necesitas saber sobre Python como principiante. Leer más, donde cubrimos esta pregunta y más.
Considere este bit de código que copia una matriz y convierte cada letra de esa matriz en mayúsculas. Lo hace haciendo un bucle a través de cada elemento de la matriz:
letras = ['a', 'b', 'c', 'd'] imprimir (letras) upper_letters = [] para letras en letras: resultado = letra.upper () upper_letters.append (resultado) imprimir (upper_letters)
Ahora aquí está la misma lógica exacta, excepto que se hace en una sola línea de código usando una comprensión básica de la lista de Python:
letras = ['a', 'b', 'c', 'd'] imprimir (letras) upper_letters = [x.upper () para x en letras] imprimir (upper_letters)
Como puede ver, el resultado es exactamente el mismo, pero el proceso implica un número significativamente mayor de código sin la comprensión de la lista.
Vamos a romper este ejemplo simple abajo.
Este ejemplo crea una lista llamada letras. Esto almacena las letras minúsculas. “una”, “segundo”, “do”, y “re”. ¿Suponiendo que desea que todos estos elementos de la lista estén en mayúsculas? Bueno, sin la comprensión de la lista, tiene que crear una nueva lista para almacenar el resultado (llamado upper_letters), recorre cada elemento de la letras lista, convierte cada letra (y guárdala en resultado-opcional pero es una buena práctica), y luego agregue la letra mayúscula a la nueva lista. Cuánto trabajo!
La lista de comprensión aquí es casi exactamente equivalente a la alternativa de bucle. Efectivamente dice “para cada letra en la lista de letras, conviértalas en mayúsculas y devuelva el resultado como una nueva lista.”
La comprensión de listas solo puede funcionar en listas y debe devolver una nueva lista. Vamos a profundizar.
Hay tres partes en una lista de comprensión (cubriremos la tercera parte a continuación). La lista de comprensión debe comenzar y terminar con corchetes (El y ]). Así es como se diseñó y le permite a Python saber que trabajará con una lista.
Dentro de los corchetes, debes comenzar con el resultado. Esto es lo que quieres hacer con cada elemento de la lista.
En el ejemplo anterior, el siguiente código convierte cada elemento (referenciado por el nombre de la variable) X) a mayúsculas usando el Superior() Método, que es parte de la biblioteca central de Python:
[x.upper () # no se ejecutará, solo la mitad de la comprensión en este punto
A continuación, debe indicar a Python en qué lista trabajar y asignar cada elemento individual a una variable. Esto es exactamente lo mismo que el bucle for en el ejemplo largo y sinuoso:
para x en letras
Cada vez que el bucle recorre la lista, el valor de X cambiará a lo que sea el elemento actual. Comenzará como “una”, y entonces “segundo”, y así.
Si lo pones todo junto (y lo asignas a una variable llamada upper_letters), habrás terminado:
upper_letters = [x.upper () para x en letras]
Ahora, upper_letters contendrá una lista de letras mayúsculas, comenzando en “UNA”, y entonces “segundo” y así.
La tercera parte de la comprensión de lista en Python
Como mencionamos anteriormente, hay una tercera parte para enumerar la comprensión.
Una vez que haya realizado los dos pasos anteriores, puede incluir una condición opcional. Esto es como usar un Si declaración para decir “Hazme una lista nueva, basada en esta lista antigua, pero solo incluye elementos que cumplan con mis criterios”.
Esto es lo que parece:
edades = [1, 34, 5, 7, 3, 57, 356] imprimir (edades) old_ages = [x para x en edades si x> 10] imprimir (old_ages)
Este ejemplo usa una nueva lista llamada siglos. los old_ages La lista se ensambla utilizando una lista de comprensión. los Si condición en el extremo significa que solo los elementos de la lista que cumplen con los criterios se insertan en la nueva lista. En este ejemplo, cualquier edad mayor de diez años está permitida..
Cuándo no utilizar las comprensiones de la lista de Python
La comprensión de la lista es asombrosa una vez que la dominas, pero no es útil en todas las circunstancias. Probablemente no deberías usarlo cuando necesites más de una condición:
old_ages = [x para x en edades si x> 10 y x < 100 and x is not None]
Este código funciona, pero comienza a ser largo y confuso. Del mismo modo, algo más que una simple función de llamada puede no funcionar. En este ejemplo, obtendrás un error:
letras = ['a', 'b', 'c', 'd', 2] imprimir (letras) upper_letters = [x.upper () para x en letras] imprimir (upper_letters)
Este es un código perfectamente válido, pero como no puede escribir en mayúsculas un número, no funcionará. Este es un caso en el que el bucle más largo es realmente preferible, ya que podrá hacer un manejo de excepciones:
letras = ['a', 'b', 'c', 'd', 1] imprime (letras) upper_letters = [] para letras en letras: prueba: resultado = letra.upper () upper_letters.append (resultado) excepto AttributeError: pass # do nothing print (upper_letters)
Comience a poner en uso las Comprensiones de la Lista de Python
Ahora que sabe cuán fácil es la comprensión de listas en Python, no hay razón para no usarla. Solo recuerde que debe ser sencillo y considerar la legibilidad por encima de todo lo demás..
Tal vez usted controle un Arduino con Python. Cómo programar y controlar un Arduino con Python. Cómo programar y controlar un Arduino con Python. Lamentablemente, es imposible programar directamente un Arduino en Python, pero puede controlarlo por USB utilizando un Python. programa. Así es cómo. Más información o una cámara de seguridad de red Python DIY Cámara de seguridad de red Pan y Tilt de bricolaje con Raspberry Pi Cámara de seguridad de red Pan y Tilt de bricolaje con Raspberry Pi Aprenda cómo hacer una cámara de seguridad de pan e inclinación visible a distancia con una Raspberry Pi Este proyecto se puede completar en una mañana con solo las partes más simples. Lee mas ?
Explorar más sobre: Tutoriales de codificación, Python.