Els conjunts (sets) són una estructura de dades fonamental en Python que permet emmagatzemar col·leccions d'elements únics i no ordenats. Els conjunts són útils per a operacions matemàtiques com la unió, la intersecció i la diferència, així com per eliminar elements duplicats d'una col·lecció.
Conceptes Clau
- Creació de Conjunts: Els conjunts es poden crear utilitzant la funció
set()
o amb la sintaxi de claus{}
. - Propietats dels Conjunts: Els conjunts no permeten elements duplicats i els elements no estan ordenats.
- Operacions amb Conjunts: Inclouen la unió, la intersecció, la diferència i la diferència simètrica.
- Mètodes dels Conjunts: Python proporciona diversos mètodes per manipular conjunts, com
add()
,remove()
,union()
,intersection()
, etc.
Creació de Conjunts
Utilitzant la funció set()
# Creació d'un conjunt buit conjunt_buit = set() print(conjunt_buit) # Output: set() # Creació d'un conjunt amb elements conjunt = set([1, 2, 3, 4, 5]) print(conjunt) # Output: {1, 2, 3, 4, 5}
Utilitzant la sintaxi de claus {}
# Creació d'un conjunt amb elements conjunt = {1, 2, 3, 4, 5} print(conjunt) # Output: {1, 2, 3, 4, 5} # Creació d'un conjunt amb elements duplicats (els duplicats seran eliminats) conjunt = {1, 2, 2, 3, 4, 4, 5} print(conjunt) # Output: {1, 2, 3, 4, 5}
Propietats dels Conjunts
- Elements Únics: Els conjunts no permeten elements duplicats.
- No Ordenats: Els elements en un conjunt no tenen un ordre específic.
Operacions amb Conjunts
Unió
La unió de dos conjunts retorna un nou conjunt amb tots els elements presents en qualsevol dels conjunts.
conjunt1 = {1, 2, 3} conjunt2 = {3, 4, 5} unio = conjunt1.union(conjunt2) print(unio) # Output: {1, 2, 3, 4, 5}
Intersecció
La intersecció de dos conjunts retorna un nou conjunt amb els elements comuns a tots dos conjunts.
conjunt1 = {1, 2, 3} conjunt2 = {3, 4, 5} interseccio = conjunt1.intersection(conjunt2) print(interseccio) # Output: {3}
Diferència
La diferència de dos conjunts retorna un nou conjunt amb els elements que estan en el primer conjunt però no en el segon.
conjunt1 = {1, 2, 3} conjunt2 = {3, 4, 5} diferencia = conjunt1.difference(conjunt2) print(diferencia) # Output: {1, 2}
Diferència Simètrica
La diferència simètrica de dos conjunts retorna un nou conjunt amb els elements que estan en un conjunt o en l'altre, però no en tots dos.
conjunt1 = {1, 2, 3} conjunt2 = {3, 4, 5} diferencia_simet = conjunt1.symmetric_difference(conjunt2) print(diferencia_simet) # Output: {1, 2, 4, 5}
Mètodes dels Conjunts
add()
Afegeix un element al conjunt.
remove()
Elimina un element del conjunt. Si l'element no existeix, llença una excepció KeyError
.
discard()
Elimina un element del conjunt si existeix. Si l'element no existeix, no fa res.
clear()
Elimina tots els elements del conjunt.
Exercicis Pràctics
Exercici 1: Creació i Manipulació de Conjunts
- Crea un conjunt amb els números de l'1 al 5.
- Afegeix el número 6 al conjunt.
- Elimina el número 3 del conjunt.
- Calcula la unió d'aquest conjunt amb
{4, 5, 6, 7, 8}
. - Calcula la intersecció amb
{4, 5, 6, 7, 8}
.
# Solució conjunt = {1, 2, 3, 4, 5} conjunt.add(6) conjunt.remove(3) unio = conjunt.union({4, 5, 6, 7, 8}) interseccio = conjunt.intersection({4, 5, 6, 7, 8}) print("Conjunt:", conjunt) # Output: {1, 2, 4, 5, 6} print("Unió:", unio) # Output: {1, 2, 4, 5, 6, 7, 8} print("Intersecció:", interseccio) # Output: {4, 5, 6}
Exercici 2: Diferència i Diferència Simètrica
- Crea dos conjunts:
{1, 2, 3, 4}
i{3, 4, 5, 6}
. - Calcula la diferència del primer conjunt respecte al segon.
- Calcula la diferència simètrica entre els dos conjunts.
# Solució conjunt1 = {1, 2, 3, 4} conjunt2 = {3, 4, 5, 6} diferencia = conjunt1.difference(conjunt2) diferencia_simet = conjunt1.symmetric_difference(conjunt2) print("Diferència:", diferencia) # Output: {1, 2} print("Diferència Simètrica:", diferencia_simet) # Output: {1, 2, 5, 6}
Conclusió
Els conjunts són una eina poderosa per treballar amb col·leccions d'elements únics i no ordenats. Les operacions com la unió, la intersecció i la diferència són molt útils per a diverses aplicacions, des de la gestió de dades fins a la resolució de problemes matemàtics. Practicar amb conjunts et permetrà comprendre millor com utilitzar aquesta estructura de dades de manera eficient en Python.
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