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
Barbara Streisandasal
2024-11-29 16:51:10162semak imbas

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']

Output yang Diingini:

b = {'hello': 'world', '1': '2'}

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]))

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))

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)}

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))

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!

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