Menghapuskan Elemen Pendua Berturut-turut dalam Python
Dalam Python, tugas untuk menghapuskan elemen pendua berturut-turut daripada senarai boleh didekati dalam pelbagai cara. Satu pendekatan melibatkan lelaran melalui senarai dan memadamkan elemen bersebelahan dengan nilai yang sama. Walau bagaimanapun, kaedah ini boleh menjadi menyusahkan apabila berurusan dengan senarai panjang.
Untuk penyelesaian yang lebih cekap dan elegan, kami boleh memanfaatkan fungsi dan perpustakaan terbina dalam Python. Menggunakan itertools.groupby, kita boleh mengumpulkan elemen pendua berturut-turut dan memanipulasi penjana yang terhasil dengan sewajarnya.
Untuk menghapuskan semua elemen pendua berturut-turut, kita hanya perlu mengekstrak kunci daripada iterator berkumpulan.
L = [1,1,1,1,1,1,2,3,4,4,5,1,2] from itertools import groupby [key for key, _group in groupby(L)]
Output:
[1, 2, 3, 4, 5, 1, 2]
Untuk bahagian kedua soalan, yang memerlukan menghapuskan hanya unsur-unsur yang mempunyai pendua berturut-turut, kita boleh menapis selanjutnya lelaran berkumpulan berdasarkan bilangan elemen dalam setiap kumpulan. Menggunakan ungkapan penjana, kita boleh menjumlahkan elemen untuk menentukan sama ada terdapat lebih daripada satu elemen dalam kumpulan.
[k for k, g in groupby(L) if sum(1 for i in g) < 2]
Output:
[2, 3, 5, 1, 2]
Teknik ini lebih Pythonic dan cekap berbanding kepada percubaan awal. Ia memanfaatkan fungsi terbina dalam Python untuk mengumpulkan dan menapis senarai, menghasilkan penyelesaian yang ringkas dan boleh dibaca.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Elemen Pendua Berturut-turut dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!