Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Menguasai Set Python: Pembuatan, Manipulasi & Operasi

Set Python

Temukan bagaimana tipe data set Python menyederhanakan deduplikasi data dan operasi berbasis himpunan. Panduan ini mencakup pembuatan, modifikasi, penghapusan, dan semua operasi set penting.

A set is an unordered collection of unique, immutable items. While the set itself is mutable—allowing you to add or remove elements—its individual elements must be hashable (e.g., numbers, strings, tuples).

Python sets support mathematical set operations such as union, intersection, difference, and symmetric difference, making them ideal for tasks like data deduplication, membership testing, and set algebra.


Membuat Set Python

Gunakan kurung kurawal atau konstruktor bawaan set() untuk membuat set. Elemen dapat berupa tipe imutable apa pun, tetapi tipe mutable seperti list, dict, atau set lain tidak dapat disertakan.

# Example 1: Sets with different data types
# 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)

Output

{1, 2, 3} {1.0, (1, 2, 3), 'Hello'}

Perhatikan bagaimana nilai duplikat secara otomatis dihapus dan bagaimana tuple—karena bersifat imutable—diterima.

# Removing duplicates
my_set = {1, 2, 3, 4, 3, 2}
print(my_set)
# Constructing a set from a list
my_set = set([1, 2, 3, 2])
print(my_set)
# Attempting to include a mutable item causes an error
# my_set = {1, 2, [3, 4]} # TypeError: unhashable type: 'list'

Output

{1, 2, 3, 4} {1, 2, 3} Traceback (most recent call last): File "<string>", line 15, in <module> my_set = {1, 2, [3, 4]} TypeError: unhashable type: 'list'

Membuat set kosong memerlukan konstruktor set(); menggunakan {} menciptakan dictionary kosong alih-alih.

# Distinguish set and dictionary when creating empty structures
a = {}
print(type(a))
a = set()
print(type(a))

Output

<class 'dict'> <class 'set'>

Memodifikasi Set di Python

Set bersifat mutable, tetapi mereka tidak mendukung pengindeksan atau slicing karena sifatnya yang tidak berurutan.

Gunakan add() untuk menyisipkan satu elemen dan update() untuk menggabungkan iterable lain ke dalam set. Entri duplikat secara otomatis diabaikan.

# Example: Adding elements
my_set = {1, 3}
print(my_set)
# Attempting to index a set raises an error
# my_set[0] # TypeError: 'set' object does not support indexing
# Add a single element
my_set.add(2)
print(my_set)
# Add multiple elements from a list
my_set.update([2, 3, 4])
print(my_set)
# Combine a list and another set
my_set.update([4, 5], {1, 6, 8})
print(my_set)

Output

{1, 3} {1, 2, 3} {1, 2, 3, 4} {1, 2, 3, 4, 5, 6, 8}

Menghapus Elemen dari Set

Gunakan discard() untuk menghapus elemen jika ada, atau tidak melakukan apa pun jika tidak. Sebaliknya, remove() menghasilkan KeyError saat elemen tidak ada.

# Example: Discard vs. remove
my_set = {1, 3, 4, 5, 6}
print(my_set)
my_set.discard(4)
print(my_set)
my_set.remove(6)
print(my_set)
my_set.discard(2)
print(my_set)
# The following will raise KeyError
# my_set.remove(2)

Output

{1, 3, 4, 5, 6} {1, 3, 5, 6} {1, 3, 5} {1, 3, 5} Traceback (most recent call last): File "<string>", line 28, in <module> KeyError: 2

Metode pop() menghapus dan mengembalikan elemen sembarang, sementara clear() mengosongkan set sepenuhnya.

# Pop and clear example
my_set = set("HelloWorld")
print(my_set)
print(my_set.pop())
print(my_set)
my_set.clear()
print(my_set)

Output

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

Operasi Set Python

Set Python mendukung aljabar himpunan klasik: union, intersection, difference, dan symmetric difference. Ini dapat dipanggil melalui operator atau metode khusus.

Mari kita gunakan dua set contoh:

A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

Union

Union dari A dan B menggabungkan semua elemen yang berbeda.

print(A | B)

Output

{1, 2, 3, 4, 5, 6, 7, 8}

Intersection

Intersection hanya mengembalikan elemen yang sama di kedua set.

print(A & B)

Output

{4, 5}

Difference

Difference A - B mencantumkan elemen yang ada di A tetapi tidak di B.

print(A - B)

Output

{1, 2, 3}

Symmetric Difference

Symmetric difference A ^ B mengembalikan elemen yang ada di salah satu set tetapi tidak di keduanya.

print(A ^ B)

Output

{1, 2, 3, 6, 7, 8}

Metode Set Tambahan

Berikut adalah referensi cepat untuk semua metode bawaan yang tersedia pada objek set:

MetodeDeskripsi
add()Menambahkan elemen ke set
clear()Menghapus semua elemen
copy()Mengembalikan saluran dangkal
difference()Mengembalikan set baru dari elemen yang ada dalam pemanggil tetapi tidak dalam yang lain
difference_update()Penghapusan difference secara langsung
discard()Hapus elemen jika ada; tidak ada error jika tidak ada
intersection()Mengembalikan set baru dari elemen yang sama
intersection_update()Pembaruan intersection secara langsung
isdisjoint()True jika set tidak memiliki elemen yang sama
issubset()True jika pemanggil adalah subset dari set lain
issuperset()True jika pemanggil berisi set lain sepenuhnya
pop()Menghapus dan mengembalikan elemen sembarang; KeyError jika kosong
remove()Hapus elemen; KeyError jika tidak ada
symmetric_difference()Mengembalikan set baru dari elemen yang eksklusif untuk setiap set
symmetric_difference_update()Pembaruan symmetric difference secara langsung
union()Mengembalikan set baru yang berisi semua elemen unik
update()Union secara langsung dengan iterable lain

Pengujian Keanggotaan Set

Periksa keberadaan elemen menggunakan kata kunci in.

my_set = set("apple")
print('a' in my_set) # True
print('p' not in my_set) # False

Output

True False

Melakukan Iterasi Melalui Set

Loop melalui set dengan loop for standar; urutan tidak dijamin.

for letter in set("apple"):
    print(letter)

Fungsi Bawaan dengan Set

Fungsi seperti len(), max(), min(), sum(), all(), any(), dan sorted() bekerja secara mulus dengan set. Berikut adalah tabel utilitas umum:

FungsiDeskripsi
all()True jika semua elemen truthy (atau set kosong)
any()True jika setidaknya satu elemen truthy
enumerate()Melakukan iterasi dengan indeks, berguna untuk debugging
len()Jumlah elemen
max()Elemen terbesar
min()Elemen terkecil
sorted()Mengembalikan list terurut dari set
sum()Jumlah semua elemen numerik

Frozenset Python

Sebuah frozenset adalah versi imutable dari set. Setelah dibuat, elemennya tidak dapat berubah, menjadikannya hashable dan dapat digunakan sebagai kunci kamus.

A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Operasi yang didukung mencerminkan set reguler, kecuali metode yang memutasi.

print(A.isdisjoint(B))
print(A.difference(B))
print(A | B) # Attempting to add an element raises an AttributeError
# A.add(3) # AttributeError: 'frozenset' object has no attribute 'add'

Python

  1. Menguasai Tipe Data Python: Panduan Praktis
  2. Menguasai Operator Python: Panduan Komprehensif
  3. Menguasai Pernyataan Pass Python: Panduan Praktis
  4. Menguasai Argumen Fungsi Python: Posisi, Kata Kunci, dan Parameter Default
  5. Menguasai Kamus Python: Pembuatan, Manipulasi, dan Teknik Lanjutan
  6. Menguasai Iterator Python: Cara Kerja dan Membuat Sendiri
  7. Penutupan (Closure) Python Dijelaskan: Cara Fungsi Bertingkat Mengambil Variabel
  8. Menguasai Python datetime: Panduan Praktis Tanggal, Waktu, dan Zona Waktu
  9. Tinjauan Python: Tinggi Level, Mudah Dibaca, Interaktif, dan Berorientasi Objek
  10. Angka Python: Memahami Tipe Data Numerik yang Tidak Dapat Diubah