Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengalih keluar Kamus Pendua daripada Senarai dalam Python Semasa Memelihara Pesanan?
Apabila bekerja dengan senarai kamus, mungkin perlu mengalih keluar pendua berdasarkan kunci yang sama -pasangan nilai. Artikel ini akan memberikan panduan terperinci tentang cara mencapainya menggunakan fungsi terbina dalam Python dan pendekatan yang lebih cekap yang mengekalkan susunan kamus.
Satu pendekatan melibatkan menukar setiap kamus kepada satu tuple barangnya. Memandangkan tupel boleh dicincang, ia boleh digunakan sebagai kunci dalam set untuk mengenal pasti kamus pendua. Kod Python berikut menunjukkan kaedah ini:
new_list = [dict(t) for t in {tuple(d.items()) for d in old_list}]
Kod ini berulang pada senarai asal kamus (senarai_lama) dan mencipta satu set tupel yang mewakili item dalam setiap kamus. Set secara automatik mengeluarkan pendua. Set yang terhasil kemudiannya ditukar kembali kepada senarai kamus menggunakan pemahaman kamus.
Walau bagaimanapun, jika susunan kamus itu penting, kaedah di atas tidak akan memeliharanya. Untuk mencapai matlamat ini, pendekatan alternatif berikut disyorkan:
seen = set() new_list = [] for d in old_list: t = tuple(sorted(d.items())) if t not in seen: seen.add(t) new_list.append(d)
Kod ini mencipta satu set tupel yang mewakili item yang dipesan dalam setiap kamus. Fungsi sorted() memastikan bahawa item berada dalam susunan yang konsisten. Set kemudian berfungsi untuk mengecualikan tupel pendua, dan senarai yang terhasil mengekalkan susunan kamus asal.
Jika kamus mengandungi kamus bersarang, kod yang disediakan memerlukan sedikit pengubahsuaian untuk meratakan struktur bersarang. Coretan kod berikut menggambarkan ini:
def flatten_dict(d): new_d = {} for k, v in d.items(): if isinstance(v, dict): v = flatten_dict(v) for k2, v2 in v.items(): new_d[f'{k}.{k2}'] = v2 else: new_d[k] = v return new_d new_list = [dict(t) for t in {tuple(flatten_dict(d).items()) for d in old_list}]
Dalam artikel ini, kami telah meneroka dua cara untuk mengalih keluar kamus pendua daripada senarai dalam Python: menggunakan set untuk penyahduplikasian dan mengekalkan yang asal pesanan dengan logik tersuai. Pilihan kaedah bergantung pada keperluan khusus tugasan.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Kamus Pendua daripada Senarai dalam Python Semasa Memelihara Pesanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!