Himpunan Python: Operasi, Metode & Teori Himpunan

Kumpulan master dengan Python. Pelajari cara menyimpan nilai unik, mengeksekusi persimpangan, penyatuan, perbedaan, dan memahami manfaat kinerja hashing.

Coba di Editor

Ikhtisar

Set adalah kumpulan elemen unik yang tidak berurutan dengan Python. Kumpulan dibuat berdasarkan tabel hash, yang membuatnya sangat optimal untuk pengujian keanggotaan—menentukan apakah elemen tertentu ada di dalam koleksi. Saat memeriksa apakah suatu item ada dalam daftar memerlukan pemindaian setiap item (operasi `O(N)`), pemeriksaan keanggotaan dalam suatu set berjalan dalam waktu konstan `O(1)`. Hal ini membuat set menjadi sangat kuat untuk penghapusan duplikat dan pemfilteran data massal.

Set diinisialisasi menggunakan kurung kurawal `{}` yang berisi nilai (tanpa titik dua) atau dengan menggunakan konstruktor `set()` bawaan. Perhatikan bahwa karena kurung kurawal juga digunakan untuk kamus, menulis kurung kurawal kosong `{}` akan menginisialisasi kamus kosong. Untuk menginisialisasi set kosong, Anda harus menggunakan `set()`. Elemen di dalam suatu himpunan harus dapat di-hash dan tidak dapat diubah, yang berarti Anda dapat menyimpan angka, string, dan tupel, namun Anda tidak dapat menyimpan daftar atau kamus di dalam suatu himpunan.

Di luar metode penambahan dan penghapusan dasar, set Python secara asli mendukung operasi dari Teori Himpunan matematika. Ini termasuk Union (`|` atau `.union()`) untuk menggabungkan koleksi, Intersection (`&` atau `.intersection()`) untuk menemukan elemen umum, Difference (`-` atau `.difference()`) untuk menemukan elemen unik pada satu koleksi, dan Perbedaan Simetris (`^`) untuk mengambil item di salah satu set tetapi tidak keduanya. Menguasai set memungkinkan Anda memecahkan masalah pengelompokan yang kompleks dengan kode yang bersih, berperforma tinggi, dan mudah dibaca.

Kode & Output Eksekusi

Menghapus duplikat dari daftar dan melakukan operasi himpunan matematika.

sets_demo.py
Coba di Editor
# Removing duplicates
roles_list = ["admin", "user", "editor", "admin", "user"]
# Sort the set to guarantee deterministic printed output
unique_roles = sorted(list(set(roles_list)))
print(f"Unique roles: {unique_roles}")

# Set operations
dev_skills = {"python", "javascript", "sql"}
ops_skills = {"sql", "docker", "kubernetes"}

# Union and Intersection (sorted for deterministic output)
all_skills = sorted(list(dev_skills | ops_skills))
common_skills = sorted(list(dev_skills & ops_skills))
unique_to_dev = sorted(list(dev_skills - ops_skills))

print(f"Union: {all_skills}")
print(f"Intersection: {common_skills}")
print(f"Dev only: {unique_to_dev}")
Keluaran Terminal
Unique roles: ['admin', 'editor', 'user']
Union: ['docker', 'javascript', 'kubernetes', 'python', 'sql']
Intersection: ['sql']
Dev only: ['javascript', 'python']

Implementasi Langkah demi Langkah

  • Menghapus entri duplikat dari hasil API atau file CSV
  • Menentukan elemen umum antara dua database
  • Melakukan operasi pencarian cepat pada daftar ID besar

Pertanyaan yang Sering Diajukan

Apakah unsur-unsur dalam suatu himpunan terurut?

Tidak, set tidak berurutan. Anda tidak dapat mengakses elemen berdasarkan indeks (seperti set[0]) atau mengirisnya.

Bagaimana cara menambah atau menghapus elemen dalam satu set?

Gunakan metode .add() untuk menyisipkan satu elemen, dan .remove() atau .discard() untuk menghapus satu elemen. .discard() lebih aman karena tidak menimbulkan kesalahan jika elemennya hilang.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.