Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menolak Satu Senarai daripada Yang Lain dengan Cekap dalam Python?
Menolak Satu Senarai daripada Yang Lain: Teknik Cekap dan Pelaksanaan Tersuai
Menolak satu senarai daripada senarai yang lain ialah operasi biasa dalam pengaturcaraan. Dalam Python, melaksanakan operasi ini secara langsung menggunakan operator - boleh mengehadkan. Untuk menolak senarai dengan berkesan, pertimbangkan pendekatan berikut:
Pemahaman Senarai
Untuk menolak satu senarai (y) daripada yang lain (x) sambil mengekalkan susunan unsur dalam x , gunakan pemahaman senarai:
<code class="python">[item for item in x if item not in y]</code>
Pendekatan ini berulang ke atas setiap elemen dalam x dan memasukkannya dalam senarai baharu hanya jika ia tiada dalam y.
Tetapkan Perbezaan
Jika susunan unsur tidak penting, pendekatan yang lebih cekap ialah menggunakan perbezaan set:
<code class="python">list(set(x) - set(y))</code>
Kaedah ini mencipta set daripada setiap senarai, melakukan penolakan pada mereka, dan menukar set yang terhasil kembali kepada senarai. Ia lebih pantas daripada pemahaman senarai tetapi tidak mengekalkan susunan asal.
Kelas Tersuai
Untuk membenarkan sintaks penolakan (x - y) berfungsi secara langsung pada senarai, satu boleh mencipta kelas tersuai:
<code class="python">class MyList(list): ... def __sub__(self, other): ...</code>
Mengatasi kaedah __sub__ mendayakan tingkah laku tolak tersuai, menyediakan kefungsian yang diingini.
Contoh Penggunaan:
<code class="python">x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] y = [1, 3, 5, 7, 9] # List Comprehension result_comprehension = [item for item in x if item not in y] print(result_comprehension) # [0, 2, 4, 6, 8] # Set Difference result_set = list(set(x) - set(y)) print(result_set) # [0, 2, 4, 6, 8] # Custom Class class MyList(list): ... x_custom = MyList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) y_custom = MyList([1, 3, 5, 7, 9]) result_custom = x_custom - y_custom print(result_custom) # [0, 2, 4, 6, 8]</code>
Pendekatan ini menyediakan cara yang berbeza untuk menolak senarai dalam Python, bergantung pada keperluan khusus dan tingkah laku yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menolak Satu Senarai daripada Yang Lain dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!