Rumah > Artikel > pembangunan bahagian belakang > Mengapa \"(\'a\', \'b\') dalam [\'b\', \'a\', \'foo\', \'bar\']\" tidak berfungsi sebagai Dijangka untuk Menyemak Berbilang Nilai dalam Senarai?
Cara Mengesahkan Pelbagai Nilai Kepunyaan Senarai
Soalan:
Saya perlu tentukan sama ada beberapa nilai terdapat dalam senarai, tetapi kod berikut menghasilkan hasil yang tidak dijangka:
'a','b' in ['b', 'a', 'foo', 'bar']
Mengapa kod ini tidak berfungsi seperti yang dimaksudkan dan bagaimana saya boleh menyemak keahlian berbilang nilai dengan cekap?
Jawapan:
Python mentafsir coretan kod sebagai perbandingan tuple, bukan sebagai ujian keahlian senarai yang diingini. Untuk menguji kehadiran berbilang nilai dengan betul, gunakan pendekatan berikut:
all(x in container for x in items)
Di mana bekas ialah senarai atau jujukan lain untuk diuji dan item ialah boleh lelar yang mengandungi nilai untuk dicari.
Pertimbangan Tambahan:
Kesimpulan:
Semua(x dalam bekas untuk x dalam item) kaedah ialah penyelesaian yang serba boleh dan cekap untuk menyemak keahlian berbilang nilai dalam senarai atau bekas lain. Bergantung pada keperluan khusus, menukar kepada set atau menggunakan penjana boleh mengoptimumkan lagi prestasi.
Atas ialah kandungan terperinci Mengapa \"(\'a\', \'b\') dalam [\'b\', \'a\', \'foo\', \'bar\']\" tidak berfungsi sebagai Dijangka untuk Menyemak Berbilang Nilai dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!