Conjuntos (datos desordenados con operaciones lógicas optimizadas)

Tipos de datos en Python

Jason Myers

Instructor

Conjunto

  • Únicos
  • Desordenados
  • Mutables
  • Implementación en Python de la teoría de conjuntos
Tipos de datos en Python

Crear conjuntos

  • Los conjuntos se crean desde una lista
cookies_eaten_today = ['chocolate chip', 'peanut butter', 
   ...: 'chocolate chip', 'oatmeal cream', 'chocolate chip']

types_of_cookies_eaten = set(cookies_eaten_today)
print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter'])
Tipos de datos en Python

Modificar conjuntos

  • .add() añade un único elemento
types_of_cookies_eaten.add('biscotti')

types_of_cookies_eaten.add('chocolate chip')

print(types_of_cookies_eaten)
set(['chocolate chip', 'oatmeal cream', 'peanut butter', 'biscotti'])
Tipos de datos en Python

Actualizar conjuntos

  • .update() combina otro conjunto o lista
cookies_hugo_ate = ['chocolate chip', 'anzac']

types_of_cookies_eaten.update(cookies_hugo_ate)

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream',  'peanut butter', 'biscotti'])
Tipos de datos en Python

Eliminar datos de conjuntos

  • .discard() elimina de forma segura un elemento por valor
  • .pop() quita y devuelve un elemento arbitrario (KeyError si está vacío)
types_of_cookies_eaten.discard('biscotti')

print(types_of_cookies_eaten)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
types_of_cookies_eaten.pop()
types_of_cookies_eaten.pop()
'chocolate chip'
'anzac'
Tipos de datos en Python

Operaciones con conjuntos: similitudes

  • El método .union() devuelve un conjunto con todos los nombres (or)
  • .intersection() identifica datos comunes (and)
cookies_jason_ate = set(['chocolate chip', 'oatmeal cream',
'peanut butter'])
cookies_hugo_ate = set(['chocolate chip', 'anzac'])

cookies_jason_ate.union(cookies_hugo_ate)
set(['chocolate chip', 'anzac', 'oatmeal cream', 'peanut butter'])
cookies_jason_ate.intersection(cookies_hugo_ate)
set(['chocolate chip'])
Tipos de datos en Python

Operaciones con conjuntos: diferencias

  • .difference() identifica lo que está en el conjunto origen y no en los argumentos (-)
  • ¡El objetivo importa!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Tipos de datos en Python

¡Vamos a practicar!

Tipos de datos en Python

Preparing Video For Download...