Frozen set is just an immutable version of a Python set object. While elements of a set can be modified at any time, elements of the frozen set remain the same after creation.
Due to this, frozen sets can be used as keys in Dictionary or as elements of another set. But like sets, it is not ordered (the elements can be set at any index).
The syntax of frozenset() function is:
frozenset([iterable])frozenset() Parameters
The frozenset() function takes a single parameter:
- iterable (Optional) - the iterable which contains elements to initialize the frozenset with.
Iterable can be set, dictionary, tuple, etc.
Return value from frozenset()
The frozenset() function returns an immutable frozenset initialized with elements from the given iterable.
If no parameters are passed, it returns an empty frozenset.
Example 1: Working of Python frozenset()
# tuple of vowels vowels = ('a', 'e', 'i', 'o', 'u') fSet = frozenset(vowels) print('The frozen set is:', fSet) print('The empty frozen set is:', frozenset()) # frozensets are immutable fSet.add('v')Output
The frozen set is: frozenset({'a', 'o', 'u', 'i', 'e'}) The empty frozen set is: frozenset() Traceback (most recent call last): File "<string>, line 8, in <module> fSet.add('v') AttributeError: 'frozenset' object has no attribute 'add'Example 2: frozenset() for Dictionary
When you use a dictionary as an iterable for a frozen set, it only takes keys of the dictionary to create the set.
# random dictionary person = {"name": "John", "age": 23, "sex": "male"} fSet = frozenset(person) print('The frozen set is:', fSet)Output
The frozen set is: frozenset({'name', 'sex', 'age'})Frozenset operations
Like normal sets, frozenset can also perform different operations like copy, difference, intersection, symmetric_difference, and union.
Output
frozenset({1, 2, 3, 4}) frozenset({1, 2, 3, 4, 5, 6}) frozenset({3, 4}) frozenset({1, 2}) frozenset({1, 2, 5, 6})Similarly, other set methods like isdisjoint, issubset, and issuperset are also available.
# Frozensets # initialize A, B and C A = frozenset([1, 2, 3, 4]) B = frozenset([3, 4, 5, 6]) C = frozenset([5, 6]) # isdisjoint() method print(A.isdisjoint(C)) # Output: True # issubset() method print(C.issubset(B)) # Output: True # issuperset() method print(B.issuperset(C)) # Output: TrueOutput
True True TrueDalam seri tipe data sebelumnya kita membahas tipe tuple di mana pada tipe ini kita bisa membuat nilai/elemen yang bersifat konstan artinya bahwa setelah tipe tuple di definisikan tidak dapat dilakukan operasi untuk mengubah nilai yang ada. Kali ini sesuai judul nya kita akan belajar tipe data Set di python.
Pada versi python sebelum 2.4 tipe ini belum tersedia, Dan pada versi saat ini (3.8) kita sudah bisa menggunakan tipe ini. Set atau dalam bahasa indonesia adalah himpunan merupakan kumpulan data/objek yang di kelompokan menjadi satu kesatuan.
Baca juga : Tipe Dictionary Python
Di dalam python kita bisa membuat himpunan dengan dua cara yaitu dengan menggunakan metode set() dan frozenset() kedua metode tersebut pada dasarnya sama yang membedakannya adalah pada sifat himpunan yang dibuat. Jika kita menggunakan metode set() elemen/anggota himpunan bersifat mutable yang artinya elemen dalam himpunan dapat diubah, sementara jika menggunakan frozenset() bersifat immutable yang artinya elemen di dalam himpunan tidak dapat diubah.
Bentuk Umum Tipe Set di Python
nama_set = set([nilai1,nilai2,nilai3, ...])Contoh:
nilai = set([3,6,9,2,5,7]) print (nilai)Hasil Program:
Berbeda dengan tipe list atau tuple yang cara mengakses nilai menggunakn index. pada tipe set tidak menggunakan index sehingga posisi elemen dalam set bisa berubah.
Perlu diperhatikan juga bahwa nilai anggota dalam satu himpunan harus bersifat unik, tidak boleh nilai yang sama. Jika terdapat nilai yang sama dalam satu anggota himpunan maka nilai tersebut akan dihitung/muncul satu kali. Coba perhatikan kode berikut:
nilai = set([3,6,9,2,5,7,6]) mahasiswa = set(["Dimas","Ayu","Citra","Ayu"]) print (nilai) print (mahasiswa)Hasil Program
{2, 3, 5, 6, 7, 9} {'Citra', 'Dimas', 'Ayu'}Perhatikan pada himpunan nilai terdapat dua nilai yang sama yaitu 6 dan untuk himpunan mahasiswa terdapat nilai yang sama yaitu “Ayu” ketika dijalankan programnya python hanya akan menghitung/mencetak nilai yang sama 1 kali saja. Sehingga nilai 6 dan “Ayu” hanya akan muncul satu kali.
Menambah Elemen Himpunan (Set)
Untuk menambah elemen baru pada suatu himpunan kita menggunakan fungsi add().
nilai = set([3,6,9,2,5,7]) print("\nSebelum ditambah") print (nilai) #Menambah elemen baru dengan nilai 4 kedalam himpunan nilai.add(4) print("\nSetelah ditambah") print (nilai)Dapat di lihat sebelum elemen himpunan berjumlah 6 setelah di tambahkan elemen baru (4) jumlah elemen menjadi 7 dalam himpunan tersebut.
Untuk menambah elemen baru pada himpunan kita juga bisa menggunakan fungsi update() caranya sama dengan fungsi add().
Menghapus Elemen Himpunan (Set)
Untuk menghapus elemen dari himpunan kita menggunakan metode remove(). Berikut contohnya:
nilai = set([3,6,9,2,5,7]) print("\nSebelum dihapus") print (nilai) #Menghapus 5 dari himpunan nilai.remove(5) print("\nSetelah dihapus") print (nilai)Hasil Program:
Dapat di lihat pada contoh di atas, saya menghapus 5 dari himpunan yang sebelumnya berjumlah 6 menjadi 5 anggota.
Jika kita ingin menghapus sema anggota/elemen himpunan bisa menggunakan fungsi clear().
Contoh:
nilai = set([3,6,9,2,5,7]) print("\nSebelum dihapus") print (nilai) #Menghapus semua anggota himpunan nilai.clear() print("\nSetelah dihapus") print (nilai)Hasil Program
Perhatikan pada contoh program di atas untuk menghapus semua elemen menggunakan perintah nilai.clear() sehingga himpunan nilai menjadi kosong.
Contoh Penggunan Metode Frozenset()
Seperti yang sudah saya sebut di awal pembahasan, kita juga bisa membuat himpunan menggunakan metode frozenset() dengan sifat immutable (tidak dapat berubah elemen himpunan).
Contoh:
nilai = frozenset([3,6,9,2,5,7]) #menambah elemen nilai.add(4) #menghapus elemen nilai.remove(3) print(nilai)Dapat di lihat pada program dan hasil output di atas dikatakan bahwa frozenset tidak menundukung atribut add maupun remove.
Kesimpulan
Sekian dulu pembasan mengenai pengenalan tipe data set pada python ini, di mana kita sudah belajar penggunaan tipe data set untuk membuat himpunan yang ditambah maupun dihapus elemen dari himpunan.
Kita juga sudah belajar membuat himpunan dengan metode frozenset() yang bersifat immutable di mana himpunan elemen yang sudah didefinisikan tidak dapat ditambah atau dihapus.
Selanjutnya akan kita bahas operasi-operasi himpunan tipe data set pada python yang mencakup operasi gabungan (union), irisan (Intersection), selisih (Difference) dan komplemen (Symmetric Difference).