Halmazok

Az üres halmazt set() jelöli (a kézenfekvő {} jelölést más célra tartja fenn a nyelv), de ha a halmaznak van eleme, azt a matematikában is szokásos módon adhatjuk meg (a felsorolás utolsó eleme után most is tehetünk vesszőt):

>>> gen= {'Rúben', 'Simeon', 'Lévi', 'Júda', 'Dán', 'Nafthali', 'Gád', 'Áser', 'Izsakhár', 'Zebulon', 'József', }
>>> gen
{'József', 'Lévi', 'Simeon', 'Nafthali', 'Áser', 'Rúben', 'Zebulon', 'Izsakhár', 'Júda', 'Gád', 'Dán'}

A halmaz rendezetlen: a kiírt elemek sorrendje nem egyezik meg az értékadáskor látottal. Ez a sorrend a későbbiekben is változhatik, így például akkor is, ha az unióképzés műveletével új elemet adunk a halmazhoz:

>>> gen= gen | {'Benjámin', }
>>> gen
{'József', 'Lévi', 'Simeon', 'Nafthali', 'Áser', 'Rúben', 'Benjámin', 'Zebulon', 'Izsakhár', 'Júda', 'Gád', 'Dán'}

A fenti értékadás rövidebben:

>>> gen|= {'Benjámin', }
>>> gen
{'József', 'Lévi', 'Simeon', 'Nafthali', 'Áser', 'Rúben', 'Benjámin', 'Zebulon', 'Izsakhár', 'Júda', 'Gád', 'Dán'}

Az előző értékadás természetesen nem változtatta meg a halmazt, hiszen az (a szó matematikai jelentésének megfelelően) egy elemet csak egyszer tartalmazhat.

A különbségképzés értelemszerűen nem kommutatív:

>>> num= {'Júda', 'Izsakhár', 'Zebulon', 'Rúben', 'Simeon', 'Gád', 'Efraim', 'Manasse', 'Benjámin', 'Dán', 'Áser', 'Nafthali', }
>>> gen - num
{'József', 'Lévi'}
>>> num - gen
{'Efraim', 'Manasse'}

Végül következzék a metszetképzés, illetve a szimmetrikus differencia művelete:

>>> rev= {'Júda', 'Rúben', 'Gád', 'Áser', 'Nafthali', 'Manassé', 'Simeon', 'Lévi', 'Izsakhár', 'Zebulon', 'József', 'Benjámin', }
>>> gen & rev
{'József', 'Lévi', 'Simeon', 'Nafthali', 'Áser', 'Benjámin', 'Rúben', 'Zebulon', 'Izsakhár', 'Júda', 'Gád'}
>>> gen ^ rev
{'Manassé', 'Dán'}