Menukar Senarai Jadual kepada Kamus dalam Python
Selalunya dalam pengaturcaraan, kita menghadapi senario di mana data disusun dalam format jadual, seperti senarai di mana indeks genap mewakili kunci dan indeks ganjil mewakili nilai yang sepadan. Tugasnya ialah mengubah senarai ini menjadi kamus.
Penyelesaian:
Cara paling bersih dan paling berkesan untuk mencapai penukaran ini ialah menggunakan fungsi terbina dalam Python:
b = dict(zip(a[::2], a[1::2]))
Kod ini berulang secara berkesan ke atas senarai a, menghirisnya menggunakan operator hirisan lanjutan [::2], yang melangkau setiap elemen lain. Hasilnya ialah dua senarai: a[::2] mengandungi kunci, dan a[1::2] mengandungi nilai. Senarai ini kemudiannya digunakan untuk membina kamus menggunakan fungsi dict().
Untuk senarai besar, pendekatan alternatif disyorkan untuk mengelak daripada mencipta senarai sementara:
from itertools import izip i = iter(a) b = dict(izip(i, i))
Kaedah ini menggunakan iter() berfungsi untuk mencipta iterator untuk senarai a. Fungsi izip() (atau zip() dalam Python 3) menyilangkan elemen daripada setiap iterator, mencipta iterator baharu yang menghasilkan tuple kunci dan nilai. Tuple ini kemudiannya dihantar ke dict() untuk membina kamus.
Dalam Python 3, kaedah lain yang mudah secara sintaksis ialah:
b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Kod ini menggunakan pemahaman kamus yang berulang ke atas senarai indeks dalam langkah dua, memasang kunci dan nilai ke dalam kamus baharu.
Dalam Python 3.8 dan lebih baharu, Pengendali "walrus" (:=) menyediakan cara ringkas untuk menulis ini pada satu baris:
b = dict(zip(i := iter(a), i))
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Senarai Jadual dengan Cekap kepada Kamus dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!