Set Python (Dengan Contoh)

Dalam tutorial ini, Anda akan mempelajari segala sesuatu tentang set Python; bagaimana mereka dibuat, menambahkan atau menghapus elemen darinya, dan semua operasi dilakukan pada set dengan Python.

Video: Disetel dengan Python

Satu set adalah koleksi item yang tidak diurutkan. Setiap elemen set unik (tidak ada duplikat) dan harus tetap (tidak dapat diubah).

Namun, satu set itu sendiri bisa berubah. Kami dapat menambah atau menghapus item darinya.

Himpunan juga dapat digunakan untuk melakukan operasi himpunan matematika seperti gabungan, persimpangan, perbedaan simetris, dll.

Membuat Set Python

Satu set dibuat dengan menempatkan semua item (elemen) di dalam kurung kurawal (), dipisahkan dengan koma, atau dengan menggunakan fungsi built-in set().

Itu dapat memiliki sejumlah item dan mereka mungkin dari jenis yang berbeda (integer, float, tuple, string dll.). Tetapi suatu himpunan tidak dapat memiliki elemen yang dapat berubah seperti daftar, himpunan, atau kamus sebagai elemennya.

 # Different types of sets in Python # set of integers my_set = (1, 2, 3) print(my_set) # set of mixed datatypes my_set = (1.0, "Hello", (1, 2, 3)) print(my_set)

Keluaran

 (1, 2, 3) (1.0, (1, 2, 3), 'Halo')

Coba contoh berikut juga.

 # set cannot have duplicates # Output: (1, 2, 3, 4) my_set = (1, 2, 3, 4, 3, 2) print(my_set) # we can make set from a list # Output: (1, 2, 3) my_set = set((1, 2, 3, 2)) print(my_set) # set cannot have mutable items # here (3, 4) is a mutable list # this will cause an error. my_set = (1, 2, (3, 4))

Keluaran

 (1, 2, 3, 4) (1, 2, 3) Traceback (panggilan terakhir terakhir): File "", baris 15, di my_set = (1, 2, (3, 4)) TypeError: tipe yang tidak dapat di-hash: 'daftar'

Membuat set kosong agak rumit.

Tanda kurung kurawal kosong ()akan membuat kamus kosong dengan Python. Untuk membuat himpunan tanpa elemen apa pun, kami menggunakan set()fungsi tanpa argumen apa pun.

 # Distinguish set and dictionary while creating empty set # initialize a with () a = () # check data type of a print(type(a)) # initialize a with set() a = set() # check data type of a print(type(a))

Keluaran

 

Mengubah satu set dengan Python

Set bisa berubah. Namun, karena tidak berurutan, pengindeksan tidak ada artinya.

Kami tidak dapat mengakses atau mengubah elemen set menggunakan pengindeksan atau pemotongan. Set tipe data tidak mendukungnya.

Kita dapat menambahkan satu elemen menggunakan add()metode ini, dan beberapa elemen menggunakan update()metode tersebut. The update()Metode dapat mengambil tupel, daftar, string atau set lain sebagai argumen. Dalam semua kasus, duplikat dihindari.

 # initialize my_set my_set = (1, 3) print(my_set) # my_set(0) # if you uncomment the above line # you will get an error # TypeError: 'set' object does not support indexing # add an element # Output: (1, 2, 3) my_set.add(2) print(my_set) # add multiple elements # Output: (1, 2, 3, 4) my_set.update((2, 3, 4)) print(my_set) # add list and set # Output: (1, 2, 3, 4, 5, 6, 8) my_set.update((4, 5), (1, 6, 8)) print(my_set)

Keluaran

 (1, 3) (1, 2, 3) (1, 2, 3, 4) (1, 2, 3, 4, 5, 6, 8)

Menghapus elemen dari satu set

Item tertentu dapat dihapus dari satu set menggunakan metode discard()dan remove().

Satu-satunya perbedaan antara keduanya adalah bahwa discard()fungsi tidak mengubah himpunan jika elemen tidak ada di himpunan. Di sisi lain, remove()fungsi tersebut akan memunculkan kesalahan dalam kondisi seperti itu (jika elemen tidak ada dalam set).

Contoh berikut akan menggambarkan hal ini.

 # Difference between discard() and remove() # initialize my_set my_set = (1, 3, 4, 5, 6) print(my_set) # discard an element # Output: (1, 3, 5, 6) my_set.discard(4) print(my_set) # remove an element # Output: (1, 3, 5) my_set.remove(6) print(my_set) # discard an element # not present in my_set # Output: (1, 3, 5) my_set.discard(2) print(my_set) # remove an element # not present in my_set # you will get an error. # Output: KeyError my_set.remove(2)

Keluaran

 (1, 3, 4, 5, 6) (1, 3, 5, 6) (1, 3, 5) (1, 3, 5) Traceback (panggilan terakhir terakhir): File "", baris 28, di KeyError: 2

Demikian pula, kita dapat menghapus dan mengembalikan item menggunakan pop()metode tersebut.

Karena set adalah tipe data yang tidak berurutan, tidak ada cara untuk menentukan item mana yang akan dimunculkan. Itu sepenuhnya sewenang-wenang.

Kami juga dapat menghapus semua item dari satu set menggunakan clear()metode ini.

 # initialize my_set # Output: set of unique elements my_set = set("HelloWorld") print(my_set) # pop an element # Output: random element print(my_set.pop()) # pop another element my_set.pop() print(my_set) # clear my_set # Output: set() my_set.clear() print(my_set) print(my_set)

Keluaran

 ('H', 'l', 'r', 'W', 'o', 'd', 'e') H ('r', 'W', 'o', 'd', 'e' ) set ()

Operasi Set Python

Himpunan dapat digunakan untuk melakukan operasi himpunan matematika seperti gabungan, persimpangan, selisih, dan perbedaan simetris. Kami dapat melakukan ini dengan operator atau metode.

Mari kita pertimbangkan dua set berikut untuk operasi berikut.

 >>> A = (1, 2, 3, 4, 5) >>> B = (4, 5, 6, 7, 8)

Atur Serikat

Setel Union dengan Python

Gabungan A dan B adalah himpunan semua elemen dari kedua himpunan.

Union dilakukan dengan menggunakan |operator. Hal yang sama dapat dilakukan dengan menggunakan union()metode ini.

 # Set union method # initialize A and B A = (1, 2, 3, 4, 5) B = (4, 5, 6, 7, 8) # use | operator # Output: (1, 2, 3, 4, 5, 6, 7, 8) print(A | B)

Keluaran

 (1, 2, 3, 4, 5, 6, 7, 8)

Coba contoh berikut pada shell Python.

 # use union function >>> A.union(B) (1, 2, 3, 4, 5, 6, 7, 8) # use union function on B >>> B.union(A) (1, 2, 3, 4, 5, 6, 7, 8)

Atur Persimpangan

Setel Persimpangan dengan Python

Persimpangan A dan B adalah himpunan elemen yang sama di kedua himpunan.

Persimpangan dilakukan dengan menggunakan &operator. Hal yang sama dapat dilakukan dengan menggunakan intersection()metode ini.

 # Intersection of sets # initialize A and B A = (1, 2, 3, 4, 5) B = (4, 5, 6, 7, 8) # use & operator # Output: (4, 5) print(A & B)

Keluaran

 (4, 5)

Coba contoh berikut pada shell Python.

 # use intersection function on A >>> A.intersection(B) (4, 5) # use intersection function on B >>> B.intersection(A) (4, 5)

Tetapkan Perbedaan

Atur Perbedaan dengan Python

Selisih himpunan B dari himpunan A (A - B) adalah himpunan elemen yang hanya ada di A tapi tidak di B. Demikian pula, B - A adalah himpunan elemen di B tapi tidak di A.

Perbedaan dilakukan dengan menggunakan -operator. Hal yang sama dapat dilakukan dengan menggunakan difference()metode ini.

 # Difference of two sets # initialize A and B A = (1, 2, 3, 4, 5) B = (4, 5, 6, 7, 8) # use - operator on A # Output: (1, 2, 3) print(A - B)

Keluaran

 (1, 2, 3)

Coba contoh berikut pada shell Python.

 # use difference function on A >>> A.difference(B) (1, 2, 3) # use - operator on B >>> B - A (8, 6, 7) # use difference function on B >>> B.difference(A) (8, 6, 7)

Atur Perbedaan Simetris

Atur Perbedaan Simetris dengan Python

Beda Simetris A dan B adalah himpunan elemen di A dan B tetapi tidak di keduanya (tidak termasuk persimpangan).

Perbedaan simetris dilakukan dengan menggunakan ^operator. Hal yang sama dapat dilakukan dengan menggunakan metode ini symmetric_difference().

 # Symmetric difference of two sets # initialize A and B A = (1, 2, 3, 4, 5) B = (4, 5, 6, 7, 8) # use operator # Output: (1, 2, 3, 6, 7, 8) print(A B)

Keluaran

 (1, 2, 3, 6, 7, 8)

Coba contoh berikut pada shell Python.

 # use symmetric_difference function on A >>> A.symmetric_difference(B) (1, 2, 3, 6, 7, 8) # use symmetric_difference function on B >>> B.symmetric_difference(A) (1, 2, 3, 6, 7, 8)

Metode Set Python Lainnya

There are many set methods, some of which we have already used above. Here is a list of all the methods that are available with the set objects:

Method Description
add() Adds an element to the set
clear() Removes all elements from the set
copy() Returns a copy of the set
difference() Returns the difference of two or more sets as a new set
difference_update() Removes all elements of another set from this set
discard() Removes an element from the set if it is a member. (Do nothing if the element is not in set)
intersection() Returns the intersection of two sets as a new set
intersection_update() Updates the set with the intersection of itself and another
isdisjoint() Returns True if two sets have a null intersection
issubset() Returns True if another set contains this set
issuperset() Returns True if this set contains another set
pop() Removes and returns an arbitrary set element. Raises KeyError if the set is empty
remove() Removes an element from the set. If the element is not a member, raises a KeyError
symmetric_difference() Returns the symmetric difference of two sets as a new set
symmetric_difference_update() Updates a set with the symmetric difference of itself and another
union() Returns the union of sets in a new set
update() Updates the set with the union of itself and others

Other Set Operations

Set Membership Test

We can test if an item exists in a set or not, using the in keyword.

 # in keyword in a set # initialize my_set my_set = set("apple") # check if 'a' is present # Output: True print('a' in my_set) # check if 'p' is present # Output: False print('p' not in my_set)

Output

 True False

Iterating Through a Set

We can iterate through each item in a set using a for loop.

 >>> for letter in set("apple"):… print(letter)… a p e l

Built-in Functions with Set

Built-in functions like all(), any(), enumerate(), len(), max(), min(), sorted(), sum() etc. are commonly used with sets to perform different tasks.

Function Description
all() Returns True if all elements of the set are true (or if the set is empty).
any() Returns True if any element of the set is true. If the set is empty, returns False.
enumerate() Returns an enumerate object. It contains the index and value for all the items of the set as a pair.
len() Returns the length (the number of items) in the set.
max() Returns the largest item in the set.
min() Returns the smallest item in the set.
sorted() Returns a new sorted list from elements in the set(does not sort the set itself).
sum() Returns the sum of all elements in the set.

Python Frozenset

Frozenset adalah kelas baru yang memiliki karakteristik himpunan, tetapi elemennya tidak dapat diubah setelah ditetapkan. Meskipun tupel adalah daftar yang tidak dapat diubah, frozenset adalah set yang tidak dapat diubah.

Set yang dapat diubah tidak dapat di-hash, sehingga tidak dapat digunakan sebagai kunci kamus. Di sisi lain, frozensets dapat di-hash dan dapat digunakan sebagai kunci kamus.

Frozenset dapat dibuat menggunakan fungsi frozenset ().

Ini tipe data metode mendukung suka copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference()dan union(). Karena tidak dapat diubah, ia tidak memiliki metode yang menambah atau menghapus elemen.

 # Frozensets # initialize A and B A = frozenset((1, 2, 3, 4)) B = frozenset((3, 4, 5, 6))

Coba contoh ini pada shell Python.

 >>> A.isdisjoint(B) False >>> A.difference(B) frozenset((1, 2)) >>> A | B frozenset((1, 2, 3, 4, 5, 6)) >>> A.add(3)… AttributeError: 'frozenset' object has no attribute 'add'

Artikel yang menarik...