Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menukar Senarai Jadual dengan Cekap kepada Kamus dalam Python?

Bagaimanakah Saya Boleh Menukar Senarai Jadual dengan Cekap kepada Kamus dalam Python?

DDD
Lepaskan: 2024-12-07 06:24:12
asal
191 orang telah melayarinya

How Can I Efficiently Convert a Tabular List to a Dictionary in Python?

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

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

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

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

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!

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