Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengeluarkan Elemen Pendua Berturut-turut dengan Cekap dalam Python?

Bagaimanakah Saya Boleh Mengeluarkan Elemen Pendua Berturut-turut dengan Cekap dalam Python?

DDD
Lepaskan: 2024-12-05 17:37:11
asal
452 orang telah melayarinya

How Can I Efficiently Remove Consecutive Duplicate Elements in Python?

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

Output:

[1, 2, 3, 4, 5, 1, 2]
Salin selepas log masuk

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

Output:

[2, 3, 5, 1, 2]
Salin selepas log masuk

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!

sumber:php.cn
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