Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengalih Keluar Kamus Pendua daripada Senarai Python Semasa Memelihara atau Mengabaikan Perintah?

Bagaimanakah Saya Boleh Mengalih Keluar Kamus Pendua daripada Senarai Python Semasa Memelihara atau Mengabaikan Perintah?

Susan Sarandon
Susan Sarandonasal
2024-11-28 00:21:10186semak imbas

How Can I Remove Duplicate Dictionaries from a Python List While Preserving or Ignoring Order?

Mengalih keluar Kamus Pendua daripada Senarai dalam Python

Memandangkan senarai kamus, matlamatnya adalah untuk mengalih keluar semua kamus yang berkongsi kunci yang sama- pasangan nilai. Sebagai contoh, menukar senarai [{'a': 123}, {'b': 123}, {'a': 123}] kepada [{'a': 123}, {'b': 123}] akan mencapai objektif ini.

Untuk mencapainya, anda boleh menggunakan teknik yang mudah tetapi berkesan:

[dict(t) for t in {tuple(d.items()) for d in l}]

Pendekatan ini beroperasi dalam tiga langkah berbeza:

  1. Tukar setiap kamus menjadi tupel, tempat tupel menyimpan pasangan nilai kunci kamus.
  2. Ubah senarai tupel kepada satu set, dengan berkesan mengalih keluar pendua kerana set tidak boleh menyimpan berbilang kejadian dengan nilai yang sama.
  3. Bina semula kamus daripada tupel menggunakan fungsi dict().

Pembolehubah dalam coretan kod mewakili yang berikut:

  • l: Senarai asal kamus
  • d: Seorang individu kamus dalam senarai
  • t: Tuple yang mewakili nilai kunci kamus itu pasangan

Jika mengekalkan susunan asal kamus adalah penting, anda boleh menggunakan pendekatan yang diubah suai berikut:

seen = set()
new_l = []
for d in l:
    t = tuple(d.items())
    if t not in seen:
        seen.add(t)
        new_l.append(d)

Kod ini menggabungkan langkah tambahan untuk mengekalkan set yang dilihat kepada menjejaki tupel (dan dengan itu kamus) yang telah ditemui. Jika tuple tidak ditemui dalam set yang dilihat, ia akan ditambahkan pada set dan kamus yang sepadan dilampirkan pada senarai new_l.

Adalah penting untuk ambil perhatian bahawa membandingkan kamus secara langsung menggunakan kesamaan (==) mungkin tidak selalu menghasilkan hasil yang diingini jika kamus telah diubah suai dengan cara yang berbeza. Jika susunan pasangan nilai kunci penting, anda disyorkan untuk mengisih item kamus sebelum membuat tupel.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Kamus Pendua daripada Senarai Python Semasa Memelihara atau Mengabaikan Perintah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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