Menamakan semula Kunci Kamus: Penyelesaian Komprehensif
Kamus Python ialah struktur data serba boleh yang membolehkan penyimpanan dan pengambilan nilai kunci yang cekap berpasangan. Walau bagaimanapun, senario tertentu mungkin memerlukan penamaan semula kunci tanpa mengubah nilainya atau mengganggu organisasi kamus. Soalan ini menangani isu ini dan menyediakan pelbagai penyelesaian yang disesuaikan dengan kedua-dua kamus biasa dan OrderedDicts.
Regular Dict
Untuk kamus biasa, pendekatan mudah melibatkan penggunaan kaedah pop() untuk mengalih keluar kekunci lama dan pengendali [] untuk menetapkan nilai kepada kekunci baharu:
<code class="python">mydict["k_new"] = mydict.pop("k_old")</code>
Operasi ini secara berkesan mengalihkan item ke penghujung kamus melainkan k_new sudah wujud, dalam yang mana ia akan menimpa nilai pada tempatnya.
OrderedDict
OrderedDict, yang diperkenalkan dalam Python 3.7, mengekalkan susunan sisipan pasangan nilai kunci. Untuk menamakan semula kunci sambil mengekalkan susunan:
<code class="python">OrderedDict((k_new if k == k_old else k, v) for k, v in od.items())</code>
Ini menetapkan semula nilai kepada kunci baharu menggunakan ungkapan penjana, memastikan pesanan dikekalkan.
Memelihara Pesanan dalam Python 3.7 Dict
Kamus Python 3.7 secara asli mengekalkan susunan sisipan. Untuk menamakan semula kunci sambil mengekalkan susunan ini:
<code class="python">d = {0:0, 1:1, 2:2, 3:3} {k: v for k, v in d.items() if k != k_old} | {k_new: d[k_old]}</code>
Mengubah Suai Kunci Itu Sendiri
Soalan bertanya tentang mengubah suai kunci itu sendiri. Walau bagaimanapun, kerana kunci boleh dicincang dan tidak boleh diubah dalam Python, pengubahsuaian kunci langsung tidak boleh dilaksanakan. Walau bagaimanapun, dengan menetapkan semula nilai dengan nama kunci yang diingini dan mengalih keluar kunci lama, kamus kekal utuh, dengan berkesan "menamakan" kunci tanpa mengubah suainya secara langsung.
Atas ialah kandungan terperinci Bagaimanakah anda menamakan semula Kunci dalam Kamus Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!