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

  1. Creació de Conjunts: Els conjunts es poden crear utilitzant la funció set() o amb la sintaxi de claus {}.
  2. Propietats dels Conjunts: Els conjunts no permeten elements duplicats i els elements no estan ordenats.
  3. Operacions amb Conjunts: Inclouen la unió, la intersecció, la diferència i la diferència simètrica.
  4. 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

  1. Elements Únics: Els conjunts no permeten elements duplicats.
  2. No Ordenats: Els elements en un conjunt no tenen un ordre específic.
conjunt = {3, 1, 4, 2, 5}
print(conjunt)  # Output: {1, 2, 3, 4, 5} (l'ordre pot variar)

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.

conjunt = {1, 2, 3}
conjunt.add(4)
print(conjunt)  # Output: {1, 2, 3, 4}

remove()

Elimina un element del conjunt. Si l'element no existeix, llença una excepció KeyError.

conjunt = {1, 2, 3}
conjunt.remove(2)
print(conjunt)  # Output: {1, 3}

discard()

Elimina un element del conjunt si existeix. Si l'element no existeix, no fa res.

conjunt = {1, 2, 3}
conjunt.discard(2)
print(conjunt)  # Output: {1, 3}

clear()

Elimina tots els elements del conjunt.

conjunt = {1, 2, 3}
conjunt.clear()
print(conjunt)  # Output: set()

Exercicis Pràctics

Exercici 1: Creació i Manipulació de Conjunts

  1. Crea un conjunt amb els números de l'1 al 5.
  2. Afegeix el número 6 al conjunt.
  3. Elimina el número 3 del conjunt.
  4. Calcula la unió d'aquest conjunt amb {4, 5, 6, 7, 8}.
  5. 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

  1. Crea dos conjunts: {1, 2, 3, 4} i {3, 4, 5, 6}.
  2. Calcula la diferència del primer conjunt respecte al segon.
  3. 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

Mòdul 2: Estructures de Control

Mòdul 3: Funcions i Mòduls

Mòdul 4: Estructures de Dades

Mòdul 5: Programació Orientada a Objectes

Mòdul 6: Gestió de Fitxers

Mòdul 7: Gestió d'Errors i Excepcions

Mòdul 8: Temes Avançats

Mòdul 9: Proves i Depuració

Mòdul 10: Desenvolupament Web amb Python

Mòdul 11: Ciència de Dades amb Python

Mòdul 12: Projecte Final

© Copyright 2024. Tots els drets reservats