set adalah unordered collection of unique, immutable objects atau kolesi objek yang unik dan tidak diubah dan tidak ada aturan susunan/urutan. sintaks set adalah seperti berikut
s = {value1, value2, value3, value4}
Untuk membuat empty set gunakan constructor set().
Set juga dapat dibuat dari list dengan menggunakan constructor set()
>>> s = {44, 2, 81, 3, 52, 1}
>>> s
{1, 2, 3, 44, 81, 52}
>>> e = set()
>>> type(e)
>>> s = set([2, 7, 20, 34, 41, 123])
>>> s
{2, 34, 7, 41, 20, 123}
Karena set bersifat unique, maka duplicate item akan dibuang
>>> t = [1, 1, 3, 3, 7, 7]
>>> u = set(t)
>>> u
{1, 3, 7}
>>>
Set juga iterable, namun tidak ada aturan urutan/order
>>> for x in s:
... print(x)
...
2
34
7
41
20
123
Untuk menguji apakah suatu item ada dalam set, gunakan operator in atau not in.
>>> 2 in s
True
>>> 2 not in s
False
Menambah item pada set, gunakan method add(). Bila kita menambahkan item yang sudah ada, akan diabaikan oleh python (tidak ada error message)
>>> x = {22, 109}
>>> x
{109, 22}
>>> x.add(1)
>>> x
{1, 109, 22}
>>>
Untuk menambahkan lebih dari satu item pada set, gunakan update() method. Pada contoh dibawah, update
>>> x = {100, 200, 300}
>>> x
{200, 100, 300}
>>> x.update([400, 500])
>>> x
{100, 200, 300, 400, 500}
>>>
Untuk menghapus gunakan remove(item) methode, pastikan item yang akan dibuang ada, bila tidak akan runtime error. Cara kedua dapat digunakan discard(item) methode, untuk discard tidak terjadi error bila menghapus item yang tidak ada.
>>> x
{100, 200, 300, 400, 500}
>>> x.remove(400)
>>> x
{100, 200, 300, 500}
>>> x.remove(600)
Traceback (most recent call last):
File "", line 1, in
KeyError: 600
>>> x.discard(200)
>>> x
{100, 300, 500}
>>> x.discard(600)
>>> x
{100, 300, 500}
Seperti collection lainnya, set juga dapat dicopy (shallow copy) dengan menggunakan method .copy() atau set() constructor
>>> k = {3, 5, 9, 12, 2, 99}
>>> j = k.copy()
>>> j
{2, 3, 99, 5, 9, 12}
>>> l = set(j)
>>> l
{2, 3, 99, 5, 9, 12}
>>> l
Aplikasi set pada Aljabar
Salah satu kelebihan dari set adalah memudahkan kita melakukan perhitungan set algebra (aljabar). Memudahkan kita dalam melakuan perhitungan unions, set differences, set intersections, evaluasi apakah sebuah set memiliki subset, superset, atau disjoint dan relations.
>>> mata_biru = {'Olivia', 'Harry', 'Lily', 'Jack', 'Amelia'}
>>> rambut_pirang = {'Harry', 'Jack', 'Amelia', 'Mia', 'Joshua'}
>>> dayacium_hcn = {'Harry', 'Amelia'}
>>> dayarasa_ptc = {'Harry', 'Lily', 'Amelia', 'Lola'}
>>> gol_darah_o = {'Mia', 'Joshua', 'Lily', 'Olivia'}
>>> gol_darah_b = {'Amelia', 'Jack'}
>>> gol_darah_a = {'Harry'}
>>> gol_darah_ab = {'Joshua', 'Lola'}
- Untuk mencari siapa yang rambut pirang, mata biru atau keduanya, gunakan union(). (mencari anggota yang ada di set 1, atau set 2 atau di set 1 dan 2)
- Untuk mencari siapa yang berambut pirang dan bermata biru, kita gunakan intersection() (mencari anggota siapa yang ada di set 1 dan set 2)
- Untuk mencari siapa yang berambut pirang dan tidak bermata biru, kita gunakan difference() (mencari anggota yang ada di set 1 tapi tidak di set 2)
- Untuk mencari siapa yang hanya berambut pirang atau hanya bermata biru, tapi tidak keduanya, kita gunakan symmetric_difference(). (mencari anggota yang hanya ada di set 1 atau set 2, tetapi tidak di kedua set, kebalikan dari difference)
>>> mata_biru.union(rambut_pirang)
{'Amelia', 'Joshua', 'Harry', 'Jack', 'Olivia', 'Mia', 'Lily'}
>>> mata_biru.intersection(rambut_pirang)
{'Amelia', 'Harry', 'Jack'}
>>> rambut_pirang.difference(mata_biru)
{'Mia', 'Joshua'}
>>> rambut_pirang.symmetric_difference(mata_biru)
{'Joshua', 'Olivia', 'Mia', 'Lily'}
Relasi Antara Set
Untuk memeriksa apakah sebuah set merupakan subset dari set tersebut, menggunakan issubset() method.Untuk memeriksa apakah set pertama merupakan superset dari set kedua, gunakan issuperset() method.
Untuk memeriksa apakah dua set tidak memiliki anggota yang sama, gunakan isdisjoint() method.
>>> dayacium_hcn.issubset(rambut_pirang)
True
>>> dayarasa_ptc.issuperset(dayacium_hcn)
True
>>> gol_darah_a.isdisjoint(gol_darah_o)
True
Set Comprehension
from math import factorial
{len(str(factorial(x))) for x in range(20)}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 18}
set - Python Collection
Reviewed by noname needed
on
June 03, 2018
Rating:
No comments: