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

Bagaimanakah Saya Boleh Menukar Senarai Nilai Kunci Bergantian dengan Cekap kepada Kamus dalam Python?

Barbara Streisand
Lepaskan: 2024-11-29 16:51:10
asal
161 orang telah melayarinya

How Can I Efficiently Convert an Alternating Key-Value List to a Dictionary in Python?

Menukar '[key1,val1,key2,val2]' kepada Kamus: Kaedah Pythonic

Masalah:

Dalam Python, kami mempunyai senarai a dengan struktur nilai kunci berselang-seli, di mana setiap elemen genap mewakili kunci kamus dan seterusnya. unsur ganjil ialah nilai yang sepadan. Tugasnya ialah untuk menukar senarai ini kepada kamus b, di mana setiap pasangan nilai kunci dipetakan dengan sewajarnya.

Contoh:

a = ['hello', 'world', '1', '2']
Salin selepas log masuk

Output yang Diingini:

b = {'hello': 'world', '1': '2'}
Salin selepas log masuk

Penyelesaian:

Kaedah yang paling mudah untuk menyelesaikan masalah ini ialah menggunakan dict() terbina dalam Python dan fungsi zip(). Berikut ialah penyelesaian yang bersih dari segi sintaksis:

b = dict(zip(a[::2], a[1::2]))
Salin selepas log masuk

Kaedah ini cekap dan mencapai hasil yang diinginkan. Walau bagaimanapun, jika prestasi menjadi kebimbangan, pendekatan alternatif ialah menggunakan alat iterator Python:

from itertools import izip
i = iter(a)
b = dict(izip(i, i))
Salin selepas log masuk

Kaedah ini amat berguna apabila berurusan dengan senarai yang sangat besar, kerana ia tidak mencipta sebarang senarai sementara dalam proses.

Dalam Python 3, pemahaman dict juga menyediakan penyelesaian ringkas:

b = {a[i]: a[i+1] for i in range(0, len(a), 2)}
Salin selepas log masuk

Sementara zip() sudah malas dalam Python 3, anda juga boleh menggunakan operator walrus (:=) untuk penyelesaian satu baris dalam Python 3.8 dan ke atas:

b = dict(zip(i := iter(a), i))
Salin selepas log masuk

Akhirnya, pilihan terbaik bergantung pada keperluan khusus dan versi Python yang anda gunakan. Kaedah ini menawarkan penyelesaian yang bersih dan cekap untuk menukar senarai pasangan nilai kunci berselang-seli kepada kamus dalam Python.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Senarai Nilai Kunci Bergantian 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan