Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Mengeluarkan Kamus Pendua dengan Cekap dari Senarai Python Semasa Memelihara Pesanan?

Bagaimana Mengeluarkan Kamus Pendua dengan Cekap dari Senarai Python Semasa Memelihara Pesanan?

DDD
DDDasal
2024-11-30 15:27:10318semak imbas

How to Efficiently Remove Duplicate Dictionaries from a Python List While Preserving Order?

Mengalih keluar Kamus Pendua daripada Senarai dalam Python

Apabila mengendalikan senarai kamus, selalunya perlu mengalih keluar pendua yang berkongsi kunci yang sama- pasangan nilai. Artikel ini menyediakan penyelesaian yang mantap menggunakan Python.

Pernyataan Masalah:

Memandangkan senarai kamus, matlamatnya adalah untuk mengalih keluar kamus yang mengandungi kunci dan nilai yang sama berpasangan.

Penyelesaian:

Untuk mencapai ini, kami menggunakan pendekatan dua langkah:

  1. Tukar Kamus kepada Tuple Boleh Hash:
    Kami menukar setiap kamus menjadi tuple di mana unsur-unsurnya adalah pasangan nilai-kunci . Langkah ini adalah penting kerana kamus tidak boleh dicincang, tetapi tupel.
  2. Alih Keluar Pendua Menggunakan Set:
    Kami mencipta set daripada senarai tupel. Satu set mengalih keluar pendua secara automatik, hanya meninggalkan tupel unik.

Untuk membina semula kamus daripada tupel unik, kami menggunakan pemahaman kamus. Berikut ialah coretan kod:

original_list = [{'a': 123}, {'b': 123}, {'a': 123}]

# Convert dictionaries to tuples
tuples = [tuple(d.items()) for d in original_list]

# Remove duplicates using a set
unique_tuples = set(tuples)

# Reconstruct dictionaries
result_list = [dict(t) for t in unique_tuples]

print(result_list)

Output:

[{'a': 123}, {'b': 123}]

Memelihara Pesanan:

Jika mengekalkan yang asal susunan kamus adalah penting, kita boleh menggunakan yang sedikit berbeza pendekatan:

  1. Buat Set Terlihat:
    Mulakan set yang dipanggil dilihat untuk menjejaki tupel unik.
  2. Lelaran pada Kamus:
    Lelaran pada senarai asal dan untuk setiap kamus, tukarkannya kepada tuple. Jika tupel tiada dalam set yang dilihat, tambahkannya dan tambahkan kamus pada senarai hasil.

Ini kodnya:

original_list = [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}]

seen = set()
result_list = []

for d in original_list:
    t = tuple(d.items())
    if t not in seen:
        seen.add(t)
        result_list.append(d)

print(result_list)

Output:

[{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}]

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Kamus Pendua dengan Cekap dari Senarai Python Semasa Memelihara Pesanan?. 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