


Mengapakah `dict.fromkeys()` Mencipta Senarai Dikongsi dan Bagaimana Saya Boleh Mengelaknya?
Kaveat Fromkeys: Memahami Tingkah Laku Permulaan Kamus
Dalam Python, kaedah dict.fromkeys() biasanya digunakan untuk mencipta kamus dengan kunci yang ditentukan diberikan kepada senarai kosong. Walau bagaimanapun, salah tafsir terhadap tingkah lakunya telah membawa kepada keputusan yang tidak dijangka.
Mengapa fromkeys() Adalah Rumit
Apabila senarai kosong [] disediakan sebagai hujah kedua untuk menentukan .fromkeys(), semua nilai dalam kamus yang terhasil menghala ke objek senarai sama. Ini bermakna sebarang pengubahsuaian kepada satu nilai mempengaruhi semua nilai.
Penyelesaian Alternatif
Untuk menangani isu ini, penyelesaian berikut disyorkan:
-
Gunakan Pemahaman Kamus:
Dalam Python 2.7 atau ke atas, pemahaman kamus ialah penyelesaian yang paling ringkas dan boleh dibaca:
data = {k: [] for k in range(2)}
-
Gunakan Pemahaman Senarai dengan dict():
Dalam versi Python terdahulu, pemahaman senarai boleh dihantar ke dict() pembina:
data = dict([(k, []) for k in range(2)])
-
Gunakan Ungkapan Penjana dengan dict():
Dalam Python 2.4-2.6, ungkapan penjana boleh digunakan dengan dict(), dan kurungan boleh ditinggalkan:
data = dict((k, []) for k in range(2))
Contoh
Contoh berikut menggambarkan perbezaan antara kelakuan lalai fromkeys() dan penyelesaian yang disyorkan:
# Default behavior of fromkeys() data = {} data = data.fromkeys(range(2), []) data[1].append('hello') print(data) # Output: {0: ['hello'], 1: ['hello']} # Using a dictionary comprehension data = {k: [] for k in range(2)} data[1].append('hello') print(data) # Output: {0: [], 1: ['hello']}
Dengan memahami nuansa fromkeys(), pembangun boleh mencipta kamus dengan berkesan senarai kosong dan mengekalkan pengalamatan kunci individu.
Atas ialah kandungan terperinci Mengapakah `dict.fromkeys()` Mencipta Senarai Dikongsi dan Bagaimana Saya Boleh Mengelaknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Fleksibiliti Python dicerminkan dalam sokongan multi-paradigma dan sistem jenis dinamik, sementara kemudahan penggunaan berasal dari sintaks mudah dan perpustakaan standard yang kaya. 1. Fleksibiliti: Menyokong pengaturcaraan berorientasikan objek, fungsional dan prosedur, dan sistem jenis dinamik meningkatkan kecekapan pembangunan. 2. Kemudahan Penggunaan: Tatabahasa adalah dekat dengan bahasa semulajadi, perpustakaan standard merangkumi pelbagai fungsi, dan memudahkan proses pembangunan.

Python sangat disukai kerana kesederhanaan dan kuasa, sesuai untuk semua keperluan dari pemula hingga pemaju canggih. Kepelbagaiannya dicerminkan dalam: 1) mudah dipelajari dan digunakan, sintaks mudah; 2) perpustakaan dan kerangka yang kaya, seperti numpy, panda, dan sebagainya; 3) sokongan silang platform, yang boleh dijalankan pada pelbagai sistem operasi; 4) Sesuai untuk tugas skrip dan automasi untuk meningkatkan kecekapan kerja.

Ya, pelajari Python dalam masa dua jam sehari. 1. Membangunkan pelan kajian yang munasabah, 2. Pilih sumber pembelajaran yang betul, 3 menyatukan pengetahuan yang dipelajari melalui amalan. Langkah -langkah ini dapat membantu anda menguasai Python dalam masa yang singkat.

Python sesuai untuk pembangunan pesat dan pemprosesan data, manakala C sesuai untuk prestasi tinggi dan kawalan asas. 1) Python mudah digunakan, dengan sintaks ringkas, dan sesuai untuk sains data dan pembangunan web. 2) C mempunyai prestasi tinggi dan kawalan yang tepat, dan sering digunakan dalam pengaturcaraan permainan dan sistem.

Masa yang diperlukan untuk belajar python berbeza dari orang ke orang, terutamanya dipengaruhi oleh pengalaman pengaturcaraan sebelumnya, motivasi pembelajaran, sumber pembelajaran dan kaedah, dan irama pembelajaran. Tetapkan matlamat pembelajaran yang realistik dan pelajari terbaik melalui projek praktikal.

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini