Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengelakkan Rujukan Senarai Dikongsi Apabila Mencipta Kamus Senarai Kosong dalam Python?

Bagaimana untuk Mengelakkan Rujukan Senarai Dikongsi Apabila Mencipta Kamus Senarai Kosong dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 03:44:11717semak imbas

How to Avoid Shared List References When Creating a Dictionary of Empty Lists in Python?

Memulakan Kamus Senarai Kosong dalam Python

Apabila cuba mencipta kamus senarai, anda mungkin menghadapi isu yang tidak dijangka di mana semua kunci dalam kamus berkongsi perkara yang sama rujukan senarai. Ini berlaku apabila menggunakan kaedah fromkeys() dan menghantar senarai kosong sebagai argumen kedua.

Cara Menggunakan fromkeys() Dengan Betul

Kaedah dict.fromkeys() mengambil dua argumen: a koleksi kunci dan nilai. Ia mencipta kamus baharu dengan kekunci yang disediakan dan setiap kekunci dipetakan kepada nilai yang ditentukan.

Walau bagaimanapun, jika senarai kosong [] diluluskan sebagai nilai, semua kunci dalam kamus yang dihasilkan akan diberikan objek senarai yang sama. Ini bermakna bahawa sebarang pengubahsuaian pada satu kunci juga akan menjejaskan semua kunci lain.

Penyelesaian Alternatif

Untuk mencipta kamus senarai yang berbeza, pertimbangkan untuk menggunakan salah satu kaedah berikut:

Pemahaman Dict (Python 2.7 )

data = {k: [] for k in range(2)}

Senaraikan Pemahaman dengan dict() Constructor

data = dict([(k, []) for k in range(2)])

Ekspresi Penjana dengan dict() Constructor (Python 2.4-2.6 )

data = dict((k, []) for k in range(2))

Kaedah ini pastikan setiap kunci dalam kamus dikaitkan dengan objek senarai berasingan, membenarkan kemas kini kunci individu tanpa menjejaskan kunci lain.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Rujukan Senarai Dikongsi Apabila Mencipta Kamus Senarai Kosong 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