Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Cara Mencari Kamus Khusus dalam Senarai Kamus Python dengan Cekap?

Bagaimana Cara Mencari Kamus Khusus dalam Senarai Kamus Python dengan Cekap?

Linda Hamilton
Lepaskan: 2024-12-05 15:18:10
asal
916 orang telah melayarinya

How to Efficiently Search for a Specific Dictionary in a Python List of Dictionaries?

Mencari Kamus dalam Senarai Menggunakan Python

Pertimbangkan senarai kamus sebagai contoh:

dicts = [
    {"name": "Tom", "age": 10},
    {"name": "Mark", "age": 5},
    {"name": "Pam", "age": 7},
]
Salin selepas log masuk

Masalah: Bagaimana anda mencari dan mendapatkan semula kamus di mana kunci "nama" sama dengan "Pam"?

Penyelesaian:

Menggunakan ungkapan penjana, anda boleh mengulangi senarai kamus dan menapis kamus yang anda perlukan:

match = next(item for item in dicts if item["name"] == "Pam")

print(match)
# {"name": "Pam", "age": 7}
Salin selepas log masuk

Mengendalikan Ketiadaan:

Jika ada kemungkinan nama yang anda cari tidak wujud dalam senarai, anda boleh menggunakan fungsi next() dengan argumen lalai:

match = next((item for item in dicts if item["name"] == "Pam"), None)

if match:
    print(match)
else:
    print("No matching dictionary found.")
Salin selepas log masuk

Pendekatan Alternatif:

  • Anda boleh menghitung senarai untuk mendapatkan indeks padanan kamus:
index = next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)

print(f"Matching dictionary at index {index}")
Salin selepas log masuk
  • Anda boleh menggunakan kriteria penapisan tambahan dalam ungkapan penjana untuk melakukan carian yang lebih kompleks.

Atas ialah kandungan terperinci Bagaimana Cara Mencari Kamus Khusus dalam Senarai Kamus Python dengan Cekap?. 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