Mengapa \'tidak dalam\' Berfungsi seperti yang Dijangkakan dengan Tuple dalam Python?

Barbara Streisand
Lepaskan: 2024-10-30 09:20:03
asal
382 orang telah melayarinya

Why Doesn't

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!