Masalah utama yang terkait dengan mengatur ukuran yang diubah selama iterasi adalah hal itu dapat menyebabkan perilaku dan kesalahan yang tidak terduga. Ketika ukuran set diubah selama iterasi, iterator mungkin tidak dapat melacak posisi saat ini di set, yang menyebabkan hasil atau kesalahan yang tidak diharapkan. Selain itu, jika set dimodifikasi saat melakukan iterasi, ini dapat menyebabkan elemen dilewati atau digandakan. Ini dapat menyebabkan hasil yang salah dan sulit untuk di-debug.
my_set = {1, 2, 3, 4}
for item in my_set:
my_set.add(item * 2)
print(my_set) # {1, 2, 3, 4, 2, 4, 6, 8}
1. my_set adalah himpunan yang berisi angka 1, 2, 3, dan 4.
2. Perulangan for akan mengulang setiap item di my_set.
3. Untuk setiap item di my_set, metode add() digunakan untuk menambahkan item baru yang nilainya dua kali lipat dari item saat ini ke my_set.
4. Terakhir, print(my_set) akan mencetak set yang diperbarui yang sekarang berisi semua item aslinya ditambah nilai gandanya: {1, 2, 3, 4, 2, 4, 6, 8}.
RuntimeError- Setel perubahan ukuran selama iterasi
RuntimeError: Atur ukuran yang diubah selama iterasi adalah kesalahan yang terjadi saat ukuran set diubah saat iterasi selesai. Hal ini dapat terjadi jika set diubah dengan cara apa pun, seperti menambahkan atau menghapus elemen. Itu juga dapat terjadi jika set dimodifikasi oleh utas lain saat sedang diulang. Kesalahan ini dapat dihindari dengan menggunakan salinan dari himpunan alih-alih yang asli saat mengulanginya.
bagaimana menghindari set Python berubah set selama iterasi
1. Gunakan salinan set: Saat mengulang set, Anda harus menggunakan salinan set untuk menghindari perubahan tak terduga selama iterasi. Untuk membuat salinan set, gunakan metode bawaan copy().
2. Gunakan pemahaman daftar: Pemahaman daftar adalah cara yang elegan untuk mengulangi set dengan Python. Ini memungkinkan Anda membuat daftar baru dari kumpulan yang sudah ada tanpa mengubahnya.
3. Gunakan for loop dan tambahkan elemen ke daftar lain: Anda juga dapat menggunakan for loop dan menambahkan elemen dari satu set ke daftar lain tanpa mengubah set aslinya. Ini berguna ketika Anda ingin melakukan beberapa operasi pada setiap elemen dalam himpunan tetapi tidak ingin mengubahnya.
4. Gunakan iterator: Iterator adalah objek yang dapat digunakan untuk menelusuri semua elemen koleksi atau urutan seperti daftar, tupel, kamus, dll., tanpa mengubahnya dengan cara apa pun. Anda dapat menggunakan metode ini jika Anda ingin mengulangi set tanpa mengubahnya dengan cara apa pun.