Bagaimana untuk Menolak Satu Senarai daripada Yang Lain dengan Cekap dalam Python?

Patricia Arquette
Lepaskan: 2024-10-23 13:50:03
asal
987 orang telah melayarinya

How to Subtract One List from Another Efficiently in 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>
Salin selepas log masuk

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

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

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

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!

sumber:php
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!