set - Python Collection



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 set - Python Collection Reviewed by noname needed on June 03, 2018 Rating: 5

No comments:

Powered by Blogger.