Mengesahkan Ketiadaan Elemen dalam Senarai Menggunakan Python
Dalam Python, menyemak sama ada elemen tidak hadir dalam senarai boleh dicapai melalui operator 'tidak ada'. Walau bagaimanapun, perangkap biasa timbul apabila bekerja dengan senarai tupel.
Kod Awal:
Dalam kod yang disediakan:
if curr_x -1 > 0 and (curr_x-1 , curr_y) not in myList: # Do Something
Pengaturcara bercadang untuk melaksanakan cawangan 'jika' hanya jika tupel tertentu (curr_x-1, curr_y) tiada dalam myList. Walau bagaimanapun, kod tersebut nampaknya tidak berfungsi.
Punca Isu:
Isu ini tidak berpunca daripada ungkapan logik (curr_x-1 , curr_y) bukan dalam myList . Ungkapan ini menilai dengan betul kepada Benar jika tupel tiada dalam senarai dan Salah jika ia ada, seperti yang ditunjukkan dalam contoh ini:
>>> 3 not in [2, 3, 4] False >>> 3 not in [4, 5, 6] True
Tuples lwn. Senarai:
Pepijat mungkin terletak di tempat lain dalam kod. Tidak seperti senarai, tupel tidak boleh diubah dalam Python. Ini bermakna apabila dibuat, tuple tidak boleh diubah suai. Jika anda cuba mengubah suainya, TypeError akan dibangkitkan, yang boleh mengganggu operasi operator 'tidak masuk'.
Penyelesaian:
Untuk mengelakkan sebarang potensi isu, pastikan tupel dalam senarai dan yang anda semak untuk ketiadaan kekal tidak berubah sepanjang kod. Jika ia perlu diubah suai, pertimbangkan untuk menggunakan senarai dan bukannya tupel.
Atas ialah kandungan terperinci Mengapa \'tidak dalam\' Berfungsi seperti yang Dijangkakan dengan Tuple dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!