Читать книгу El gran libro de Python - Marco Buttu - Страница 80

Listas por comprensión

Оглавление

El bucle for más interno itera en las líneas del archivo. Para cada línea se crea una lista de los elementos convertidos en float:


La expresión [float(item) for item in line.split()] es una lista por comprensión. Si ha cemos memoria, recordaremos que ya hemos hablado de ella en la sección La función integrada help() y las cadenas de documentación, en la cual hemos dicho que es una expresión que permite crear una lista con una sintaxis elegante y compacta. Retomemos de nuevo el argumento, dejando para el Capítulo 2 un trato más detallado.

Vamos a intentar entender qué hace exactamente nuestra lista por comprensión, partiendo del método line.split():


Como podemos ver, line.split() devuelve una lista de los elementos de la cadena de texto. Sin embargo, esta lista no puede ser utilizada para calcular una suma, porque sus elementos son cadenas y no números:


Por tanto, es preciso obtener una lista cuyos elementos sean float y no str. Una solución podría ser la siguiente:


En cambio, la solución que hemos adoptado en nuestro script utiliza una lista por comprensión y, como podemos ver, es mucho más compacta y elegante que la anterior:


Su sintaxis es autoexplicativa: cada elemento item de line.split() se convierte en float y se inserta en la lista.

El gran libro de Python

Подняться наверх