Sets¶
myset = {"apple", "banana", "cherry"}
Set¶
Set digunakan untuk menyimpan beberapa item dalam satu variabel.
Set adalah salah satu dari 4 tipe data bawaan Python yang digunakan untuk menyimpan koleksi data. Tiga lainnya adalah List, Tuple, dan Dictionary, yang semuanya memiliki kualitas dan penggunaan yang berbeda.
Set adalah koleksi yang tidak berurutan, tidak dapat diubah*, dan tidak terindeks.
Catatan
Item dalam set tidak dapat diubah, tetapi Anda dapat menghapus item dan menambahkan item baru.
Set ditulis dengan tanda kurung kurawal.
- Set Items
Item yang ditetapkan tidak berurutan, tidak dapat diubah, dan tidak memperbolehkan nilai duplikat.
- Unordered
Tidak berurutan berarti item dalam suatu set tidak memiliki urutan yang pasti.
Item dalam set dapat muncul dalam urutan yang berbeda setiap kali Anda menggunakannya, dan tidak dapat dirujuk berdasarkan indeks atau kunci.
- Tidak Dapat Diubah
Item dalam set tidak dapat diubah, artinya kita tidak dapat mengubah item setelah set dibuat.
Catatan
Setelah satu set dibuat, Anda tidak dapat mengubah itemnya, tetapi Anda dapat menghapus item dan menambahkan item baru.
- Duplicates Not Allowed
Set tidak dapat memiliki dua item dengan nilai yang sama.
Catatan
Nilai
Truedan1dianggap sebagai nilai yang sama dalam set, dan diperlakukan sebagai duplikatNilai
Falsedan0dianggap sebagai nilai yang sama dalam set, dan diperlakukan sebagai duplikat
- Get the Length of a Set
Untuk menentukan berapa banyak item yang dimiliki suatu set, gunakan fungsi len()
thisset = {"apple", "banana", "cherry"} print(len(thisset)) #return 3
- Set Items - Data Types
Item yang ditetapkan dapat berupa tipe data apa pun:
set1 = {"apple", "banana", "cherry"} set2 = {1, 5, 7, 9, 3} set3 = {True, False, False}
Satu set dapat berisi tipe data yang berbeda:
set1 = {"abc", 34, True, 40, "male"}
- type()
Dari perspektif Python, himpunan didefinisikan sebagai objek dengan tipe data 'set':
<class 'set'>
The set() Constructor
thisset = set(("apple", "banana", "cherry")) # note the double round-brackets print(thisset) #return {'banana', 'cherry', 'apple'}
Access Set Items¶
Anda tidak dapat mengakses item dalam suatu set dengan merujuk ke indeks atau kunci.
Namun, Anda dapat melakukan perulangan melalui item-item dalam set menggunakan for loop, atau menanyakan apakah suatu nilai tertentu ada dalam suatu set, dengan menggunakan kata kunci in.
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
thisset = {"apple", "banana", "cherry"}
print("banana" in thisset) #return True
Add Set Items¶
Catatan
Setelah satu set dibuat, Anda tidak dapat mengubah itemnya, tetapi Anda dapat menambahkan item baru.
Untuk menambahkan satu item ke satu set gunakan metode add()
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset) #return {'apple', 'cherry', 'banana', 'orange'}
Add Sets¶
Untuk menambahkan item dari set lain ke set saat ini, gunakan metode update()
thisset = {"apple", "banana", "cherry"}
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
print(thisset) #return {'apple', 'mango', 'cherry', 'pineapple', 'banana', 'papaya'}
Add Any Iterable¶
Objek dalam metode update() tidak harus berupa suatu set, objek tersebut dapat berupa objek apa pun yang dapat diulang (tupel, lista, dictionaries, dan sebagainya).
thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
print(thisset) #return {'banana', 'cherry', 'apple', 'orange', 'kiwi'}
Remove Item¶
Untuk menghapus item dalam satu set, gunakan metode remove() atau dispose().
thisset = {"apple", "banana", "cherry"}
thisset.remove("banana")
print(thisset) #return {'apple', 'cherry'}
# Jika item yang akan dihapus tidak ada, ``remove()`` akan menimbulkan kesalahan.
thisset.discard("banana")
print(thisset) #return {'apple', 'cherry'}
# Jika item yang akan dihapus tidak ada, ``discard()`` TIDAK akan menimbulkan kesalahan.
Anda juga dapat menggunakan metode pop() untuk menghapus item, tetapi metode ini akan menghapus item secara acak, sehingga Anda tidak dapat memastikan item mana yang dihapus.
Nilai kembalian metode pop() adalah item yang dihapus.
thisset = {"apple", "banana", "cherry"}
x = thisset.pop()
print(x) #return apple
print(thisset) #return {'cherry', 'banana'}
Peringatan
Set tidak berurutan, jadi ketika menggunakan metode pop(), Anda tidak tahu item mana yang akan dihapus
Metode clear() mengosongkan set:
thisset = {"apple", "banana", "cherry"}
thisset.clear()
print(thisset) #return set()
Kata kunci del akan menghapus set sepenuhnya:
thisset = {"apple", "banana", "cherry"}
del thisset
print(thisset) #this will raise an error because the set no longer exists
Loop Sets¶
Anda dapat melakukan pengulangan melalui item-item yang ditetapkan dengan menggunakan perulangan for:
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
Join Sets¶
Ada beberapa cara untuk menggabungkan dua atau lebih set di Python.
Metode
union()danupdate()menggabungkan semua item dari kedua set.Metode
intersection()HANYA menyimpan duplikat.Metode
difference()menyimpan item dari set pertama yang tidak ada di set lainnya.Metode
symmetric_difference()menyimpan semua item KECUALI duplikat.
Union¶
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3) #return {'a', 'b', 'c', 1, 2, 3}
# Use ``|`` to join two sets, will get the same result
set3 = set1 | set2
print(set3) #return {'a', 'b', 'c', 1, 2, 3}
Join Multiple Sets¶
Semua metode dan operator penggabungan dapat digunakan untuk menggabungkan beberapa set.
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = {"John", "Elena"}
set4 = {"apple", "bananas", "cherry"}
myset = set1.union(set2, set3, set4)
print(myset)
#return {1, cherry, 2, banana, 'c', apple, 'a', 'b', Elena, 3, John}
#urutan set bersifat random
# OR
myset = set1 | set2 | set3 |set4
print(myset)
#return {'b', 3, apple, 1, banana, 'c', cherry, Elena, John, 'a', 2}
#urutan set bersifat random
Join a Set and a Tuple¶
Metode union() memungkinkan Anda menggabungkan suatu set dengan tipe data lain, seperti list atau tuple. Hasilnya akan berupa sebuah set.
x = {"a", "b", "c"}
y = (1, 2, 3)
z = x.union(y)
print(z) #return {'b', 'c', 3, 1, 'a', 2}
Catatan
Operator | hanya memungkinkan Anda untuk menggabungkan set dengan set, dan tidak dengan tipe data lain seperti yang dapat Anda lakukan dengan metode union().
Update¶
Metode
update()menyisipkan semua item dari satu set ke set lainnya.update()mengubah set asli, dan tidak mengembalikan set baru.
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1) #return {1, 'b', 2, 3, 'a', 'c'}
Catatan
Baik union() maupun update() akan mengecualikan item duplikat apa pun.
Intersection¶
Simpan HANYA duplikatnya
Metode interseksi() akan mengembalikan set baru yang hanya berisi item yang ada di kedua set.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.intersection(set2)
print(set3) #return {'apple'}
# You can use the & operator instead of the intersection() method
set3 = set1 & set2
print(set3) #return {'apple'}
Catatan
Operator & hanya memungkinkan Anda untuk menggabungkan set dengan set, dan tidak dengan tipe data lain seperti yang dapat Anda lakukan dengan metode intersection().
Metode intersection_update() juga akan HANYA menyimpan duplikat, tetapi akan mengubah set asli alih-alih mengembalikan set.method baru.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.intersection_update(set2)
print(set1) #return {'apple'}
Nilai True dan 1 dianggap sebagai nilai yang sama. Hal yang sama berlaku untuk False dan 0.
set1 = {"apple", 1, "banana", 0, "cherry"}
set2 = {False, "google", 1, "apple", 2, True}
set3 = set1.intersection(set2)
print(set3) #return {False, True, 'apple'}
Difference¶
Metode difference() akan mengembalikan set baru yang hanya berisi item dari set pertama yang tidak ada di set lainnya.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.difference(set2)
print(set3) #return {'banana', 'cherry'}
# the `-` operator instead of the `difference()` method, will get the same result.
set3 = set1 - set2
print(set3) #return {'banana', 'cherry'}
Catatan
Operator - hanya memungkinkan Anda untuk menggabungkan set dengan set, dan tidak dengan tipe data lain seperti yang dapat Anda lakukan dengan metode difference() yang ada di set lainnya.
Metode difference_update() juga akan menyimpan item dari set pertama yang tidak ada di set lainnya, tetapi akan mengubah set asli alih-alih mengembalikan set baru.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.difference_update(set2)
print(set1)
Symmetric Differences¶
Metode symmetric_difference() hanya akan menyimpan elemen yang TIDAK ada di kedua set.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.symmetric_difference(set2)
print(set3)
#return {'google', 'banana', 'microsoft', 'cherry'}
#bisa menggunakan operator ^ sebagai pengganti symmetric_difference()
set3 = set1 ^ set2
print(set3)
#return {'google', 'banana', 'microsoft', 'cherry'}
Catatan
Operator ^ hanya memungkinkan Anda untuk menggabungkan set dengan set, dan tidak dengan tipe data lain seperti yang dapat Anda lakukan dengan metode symmetric_difference().
Metode symmetric_difference_update() juga akan menyimpan semuanya kecuali duplikat, tetapi akan mengubah set asli alih-alih mengembalikan set baru.
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.symmetric_difference_update(set2)
print(set1) #return {'google', 'banana', 'microsoft', 'cherry'}
frozenset¶
frozensetadalah versi set yang tidak dapat diubah.Seperti set, frozenset berisi elemen-elemen yang unik, tidak berurutan, dan tidak dapat diubah.
Tidak seperti set, elemen tidak dapat ditambahkan atau dihapus dari frozenset.
Creating a frozenset¶
Gunakan konstruktor frozenset() untuk membuat frozenset dari iterable mana pun.
x = frozenset({"apple", "banana", "cherry"})
print(x) #return frozenset({'banana', 'apple', 'cherry'})
print(type(x)) #return <class 'frozenset'>
Frozenset Methods¶
Karena tidak dapat diubah, Anda tidak dapat menambahkan atau menghapus elemen. Namun, frozenset mendukung semua operasi set yang tidak mengalami mutasi.
Method |
Shortcut |
Description |
|---|---|---|
copy() |
Returns a shallow copy |
|
difference() |
- |
Returns a new frozenset with the difference |
intersection() |
& |
Returns a new frozenset with the intersection |
isdisjoint() |
Returns whether two frozensets have an intersection |
|
issubset() |
<= / < |
Returns True if this frozenset is a (proper) subset of another |
issuperset() |
>= / > |
Returns True if this frozenset is a (proper) superset of another |
symmetric_difference() |
^ |
Returns a new frozenset with the symmetric differences |
union() |
| |
Returns a new frozenset containing the union |
Set Methods¶
Python memiliki seperangkat metode bawaan yang dapat Anda gunakan pada set.
Method |
Shortcut |
Description |
|---|---|---|
add() |
Adds an element to the set |
|
clear() |
Removes all the elements from the set |
|
copy() |
Returns a copy of the set |
|
difference() |
|
Returns a set containing the difference between two or more sets |
difference_update() |
|
Removes the items in this set that are also included in another, specified set |
discard() |
Remove the specified item |
|
intersection() |
|
Returns a set, that is the intersection of two other sets |
intersection_update() |
|
Removes the items in this set that are not present in other, specified set(s) |
isdisjoint() |
Returns whether two sets have a intersection or not |
|
issubset() |
|
Returns True if all items of this set is present in another set Returns True if all items of this set is present in another, larger set |
issuperset() |
|
Returns True if all items of another set is present in this set Returns True if all items of another, smaller set is present in this set |
pop() |
Removes an element from the set |
|
remove() |
Removes the specified element |
|
symmetric_difference() |
|
Returns a set with the symmetric differences of two sets |
symmetric_difference_update() |
|
Inserts the symmetric differences from this set and another |
union() |
|
Return a set containing the union of sets |
update() |
|
Update the set with the union of this set and others |