Daftar Referensi Python

remove() dan discard() sama-sama menghapus satu anggota set — bedanya saat anggota itu tidak ada: remove() melempar KeyError, discard() diam saja. Pilih sesuai kebutuhan: tegas atau permisif.

Sintaks

nama_set.remove(anggota)   # tidak ada -> KeyError
nama_set.discard(anggota)  # tidak ada -> aman

remove() vs discard()

Situasi remove() discard()
Anggota ada terhapus terhapus
Anggota tidak ada KeyError tidak terjadi apa-apa

Contoh

buah = {"apel", "jeruk", "mangga"}

buah.remove("jeruk")
print(sorted(buah))

Coba di IDE

Output:

['apel', 'mangga']

Contoh Lainnya

discard(): aman walau tidak ada

buah = {"apel"}

buah.discard("durian")  # tidak ada, tapi aman
print(sorted(buah))

Coba di IDE

Output:

['apel']

remove(): tangkap error-nya bila perlu

buah = {"apel"}

try:
    buah.remove("durian")
except KeyError:
    print("durian tidak ada di set")

Coba di IDE

Output:

durian tidak ada di set

Kesalahan Umum

  • Memakai remove() padahal keberadaan anggota tidak pasti — pakai discard() atau cek dulu dengan in.
  • set.pop() menghapus anggota sembarang (bukan “yang terakhir”) — jangan samakan dengan pop() milik list.
  • Menghapus anggota sambil me-loop set yang sama → RuntimeError — loop salinannya: for x in set(buah):.

Pelajari Lebih Lanjut