Set (dati non ordinati con operazioni logiche ottimizzate)

Tipi di dati in Python

Jason Myers

Instructor

Set

  • Unici
  • Non ordinati
  • Mutabili
  • Implementazione Python della teoria degli insiemi
Tipi di dati in Python

Creare set

  • I set si creano da 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'])
Tipi di dati in Python

Modificare set

  • .add() aggiunge singoli elementi
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'])
Tipi di dati in Python

Aggiornare set

  • .update() unisce un altro set 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'])
Tipi di dati in Python

Rimuovere dati dai set

  • .discard() rimuove in sicurezza un elemento per valore
  • .pop() rimuove e restituisce un elemento arbitrario (KeyError se vuoto)
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'
Tipi di dati in Python

Operazioni sui set - somiglianze

  • Il metodo .union() restituisce l’unione di tutti i nomi (or)
  • .intersection() trova i dati in comune (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'])
Tipi di dati in Python

Operazioni sui set - differenze

  • .difference() trova gli elementi presenti nel set su cui è chiamato e non negli argomenti (-)
  • Attenzione al target!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Tipi di dati in Python

Passiamo alla pratica!

Tipi di dati in Python

Preparing Video For Download...