Les comprensions de llistes són una característica poderosa i concisa de Python que permet crear noves llistes aplicant una expressió a cada element d'una seqüència o iterable. Aquesta tècnica és molt útil per simplificar el codi i fer-lo més llegible.
Conceptes Clau
-
Sintaxi Bàsica:
[expressió for element in iterable]
expressió
: Una operació que es realitza sobre cada element.element
: L'element actual de l'iterable.iterable
: Qualsevol objecte que es pot iterar (llistes, tuples, cadenes, etc.).
-
Condicions en Comprensions de Llistes:
[expressió for element in iterable if condició]
condició
: Una expressió booleana que filtra els elements de l'iterable.
Exemples Pràctics
Exemple 1: Crear una Llista de Números al Quadrat
# Llista original numeros = [1, 2, 3, 4, 5] # Utilitzant comprensions de llistes per obtenir els quadrats quadrats = [x**2 for x in numeros] print(quadrats) # Sortida: [1, 4, 9, 16, 25]
Exemple 2: Filtrar Números Parells
# Llista original numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Utilitzant comprensions de llistes per obtenir només els números parells parells = [x for x in numeros if x % 2 == 0] print(parells) # Sortida: [2, 4, 6, 8, 10]
Exemple 3: Convertir Cadenes a Majúscules
# Llista original paraules = ["hola", "món", "python", "programació"] # Utilitzant comprensions de llistes per convertir a majúscules majúscules = [paraula.upper() for paraula in paraules] print(majúscules) # Sortida: ['HOLA', 'MÓN', 'PYTHON', 'PROGRAMACIÓ']
Exemple 4: Números Parells al Quadrat
# Llista original numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Utilitzant comprensions de llistes per obtenir els quadrats dels números parells quadrats_parells = [x**2 for x in numeros if x % 2 == 0] print(quadrats_parells) # Sortida: [4, 16, 36, 64, 100]
Exercicis Pràctics
Exercici 1: Crear una Llista de Cubes
Descripció: Donada una llista de números, crea una nova llista que contingui els cubes de cada número.
# Llista original numeros = [1, 2, 3, 4, 5] # TODO: Utilitza comprensions de llistes per obtenir els cubes cubes = [x**3 for x in numeros] print(cubes) # Sortida esperada: [1, 8, 27, 64, 125]
Exercici 2: Filtrar Números Imparells
Descripció: Donada una llista de números, crea una nova llista que contingui només els números imparells.
# Llista original numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # TODO: Utilitza comprensions de llistes per obtenir només els números imparells imparells = [x for x in numeros if x % 2 != 0] print(imparells) # Sortida esperada: [1, 3, 5, 7, 9]
Exercici 3: Filtrar i Convertir a Majúscules
Descripció: Donada una llista de cadenes, crea una nova llista que contingui només les cadenes que tenen més de 3 caràcters, convertides a majúscules.
# Llista original paraules = ["hola", "món", "python", "és", "genial"] # TODO: Utilitza comprensions de llistes per filtrar i convertir a majúscules majúscules_filtrades = [paraula.upper() for paraula in paraules if len(paraula) > 3] print(majúscules_filtrades) # Sortida esperada: ['HOLA', 'PYTHON', 'GENIAL']
Resum
Les comprensions de llistes són una eina molt potent en Python que permet crear noves llistes de manera concisa i llegible. Poden incloure condicions per filtrar elements i són útils per a una gran varietat de tasques, des de la transformació de dades fins a la filtració d'elements.
En el següent mòdul, explorarem les funcions en Python, incloent com definir-les, passar arguments i utilitzar funcions lambda per a operacions més concises.
Curs de Programació en Python
Mòdul 1: Introducció a Python
- Introducció a Python
- Configuració de l'Entorn de Desenvolupament
- Sintaxi de Python i Tipus de Dades Bàsics
- Variables i Constants
- Entrada i Sortida Bàsiques
Mòdul 2: Estructures de Control
Mòdul 3: Funcions i Mòduls
- Definició de Funcions
- Arguments de Funció
- Funcions Lambda
- Mòduls i Paquets
- Visió General de la Biblioteca Estàndard
Mòdul 4: Estructures de Dades
Mòdul 5: Programació Orientada a Objectes
Mòdul 6: Gestió de Fitxers
- Lectura i Escriptura de Fitxers
- Treballant amb Fitxers CSV
- Gestió de Dades JSON
- Operacions amb Fitxers i Directoris
Mòdul 7: Gestió d'Errors i Excepcions
Mòdul 8: Temes Avançats
- Decoradors
- Generadors
- Gestors de Context
- Concurrència: Fils i Processos
- Asyncio per a Programació Asíncrona
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries amb unittest
- Desenvolupament Guiat per Proves
- Tècniques de Depuració
- Ús de pdb per a la Depuració
Mòdul 10: Desenvolupament Web amb Python
- Introducció al Desenvolupament Web
- Conceptes Bàsics del Framework Flask
- Construcció d'APIs REST amb Flask
- Introducció a Django
- Construcció d'Aplicacions Web amb Django
Mòdul 11: Ciència de Dades amb Python
- Introducció a la Ciència de Dades
- NumPy per al Càlcul Numèric
- Pandas per a la Manipulació de Dades
- Matplotlib per a la Visualització de Dades
- Introducció al Machine Learning amb scikit-learn