Bagaimana Anda Boleh Menolak Senarai dalam Python?

DDD
Lepaskan: 2024-10-23 12:19:30
asal
202 orang telah melayarinya

How Can You Subtract Lists in Python?

Cara Menolak Senarai dalam Python

Apabila bekerja dengan senarai, terdapat senario di mana anda mungkin perlu menolak satu senarai daripada senarai yang lain. Menolak senarai dalam Python melibatkan mengenal pasti elemen yang terdapat dalam satu senarai tetapi tidak dalam senarai yang lain.

Menggunakan Pemahaman Senarai

Pendekatan mudah ialah menggunakan pemahaman senarai. Dengan mengulangi senarai pertama (x), anda boleh membuat senarai baharu yang mengandungi hanya elemen yang tidak terdapat dalam senarai kedua (y):

<code class="python">[item for item in x if item not in y]</code>
Salin selepas log masuk

Kaedah ini mengekalkan susunan asal x sambil mengecualikan elemen ditemui dalam y.

Menggunakan Perbezaan Set

Jika anda tidak mengambil berat tentang mengekalkan sifat senarai (seperti memesan), anda boleh memanfaatkan operasi perbezaan set. Set ialah koleksi tidak tersusun, jadi mereka membuang pendua. Untuk melaksanakan perbezaan yang ditetapkan:

<code class="python">list(set(x) - set(y))</code>
Salin selepas log masuk

Kaedah ini mengembalikan senarai dengan elemen yang unik kepada senarai pertama.

Mengatasi sub Kaedah

Untuk kemudahan sintaksis, anda boleh menentukan kelas tersuai yang mewarisi daripada senarai dan mengatasi kaedah sub:

<code class="python">class MyList(list):
    def __sub__(self, other):
        return self.__class__(*[item for item in self if item not in other])</code>
Salin selepas log masuk

Dengan kelas ini, anda boleh menggunakan penolakan infix :

<code class="python">x = MyList(1, 2, 3, 4)
y = MyList(2, 5, 2)
z = x - y  # Subtracts y from x and assigns to z</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Anda Boleh Menolak Senarai 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
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!