Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Pendua Berturut-turut dengan Cekap, dan Kemudian Alih Keluar Semua Elemen dengan Sebarang Pendua, daripada Senarai Python?
Pernyataan Masalah:
Persoalannya berkisar tentang membangunkan program Python yang boleh mengalih keluar elemen dengan pendua berturut-turut dengan cekap daripada senarai yang diberikan. Pendekatan awal berjaya menghapuskan elemen pendua berturut-turut, tetapi ia tidak mengalih keluar elemen yang mengandungi pendua. Output yang dikehendaki ialah senarai yang mengecualikan elemen dengan pendua berturut-turut sepenuhnya.
Penyelesaian:
Untuk masalah yang diubah suai, penyelesaian yang lebih elegan muncul menggunakan modul itertools Python yang berkuasa dan fungsi groupby(). Lelaran berasaskan kumpulan ini membolehkan kami memproses elemen senarai mengikut elemen, mengenal pasti pendua berturut-turut.
from itertools import groupby L = [1,1,1,1,1,1,2,3,4,4,5,1,2] # Remove elements with consecutive duplicates result = [key for key, _group in groupby(L)] # Output: [1, 2, 3, 4, 5, 1, 2]
Teknik ini memudahkan tugas dengan memanfaatkan fungsi terbina dalam Python dan menghapuskan keperluan untuk logik tersuai.
Penapisan Lanjutan:
Untuk memperhalusi lagi menapis dan mengecualikan elemen yang mengandungi pendua sepenuhnya, kami boleh memanfaatkan fungsi sum() dan ungkapan penjana:
result = [k for k, g in groupby(L) if sum(1 for i in g) < 2] # Output: [2, 3, 5, 1, 2]
Dengan melelaran setiap kumpulan dan mengira kiraan elemen dalam kumpulan, kami boleh mengecualikan elemen yang mempunyai lebih daripada satu kejadian.
Kesimpulannya, fungsi groupby() menyediakan cara yang ringkas dan berkesan untuk mengenal pasti dan mengalih keluar elemen pendua daripada senarai. Kesederhanaan dan kecekapannya menjadikannya alat yang ideal untuk memanipulasi data dalam Python.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Elemen dengan Pendua Berturut-turut dengan Cekap, dan Kemudian Alih Keluar Semua Elemen dengan Sebarang Pendua, daripada Senarai Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!