Mängder (oordnad data med optimerade logikoperationer)

Datatyper i Python

Jason Myers

Instructor

Mängd

  • Unika
  • Oordnade
  • Föränderliga
  • Pythons implementation av matematisk mängdlära
Datatyper i Python

Skapa mängder

  • Mängder skapas från en 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'])
Datatyper i Python

Ändra mängder

  • .add() lägger till enstaka element
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'])
Datatyper i Python

Uppdatera mängder

  • .update() slår ihop med en annan mängd eller 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'])
Datatyper i Python

Ta bort data från mängder

  • .discard() tar säkert bort ett element ur mängden med värdet
  • .pop() tar bort och returnerar ett godtyckligt element (KeyError om mängden är tom)
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'
Datatyper i Python

Mängdoperationer – likheter

  • .union() returnerar en mängd med alla namn (or)
  • .intersection() identifierar överlappande data (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'])
Datatyper i Python

Mängdoperationer – skillnader

  • .difference() identifierar data som finns i den anropande mängden men inte i argumentet (-)
  • Ordningen spelar roll!
cookies_jason_ate.difference(cookies_hugo_ate)
set(['oatmeal cream', 'peanut butter'])
cookies_hugo_ate.difference(cookies_jason_ate)
set(['anzac'])
Datatyper i Python

Nu kör vi en övning!

Datatyper i Python

Preparing Video For Download...