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
Lepaskan: 2024-11-28 00:21:10
asal
232 orang telah melayarinya

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

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan