Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menamakan semula Kunci Kamus dalam Python Tanpa Penugasan Semula atau Lelaran?

Bagaimana untuk menamakan semula Kunci Kamus dalam Python Tanpa Penugasan Semula atau Lelaran?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 07:57:291043semak imbas

How to Rename a Dictionary Key in Python Without Reassignment or Iteration?

Menamakan semula Kunci Kamus Tanpa Penugasan Semula atau Lelaran

Apabila memanipulasi kamus, mungkin perlu untuk menamakan semula kunci tanpa menugaskan semula nilainya kepada nama baharu atau berulang melalui kamus. Ini boleh dicapai menggunakan kaedah berbeza bergantung pada jenis kamus yang digunakan.

Untuk kamus Python biasa, coretan kod berikut boleh digunakan:

<code class="python">mydict[k_new] = mydict.pop(k_old)</code>

Ini mengalihkan item yang sepadan kepada kunci yang akan dinamakan semula ke penghujung kamus, melainkan k_new sudah wujud dalam kamus, dalam hal ini ia akan menimpa nilai sedia ada dengan nilai daripada kunci yang dinamakan semula.

Untuk Python 3.7 OrderedDict di mana pesanan kunci perlu dipelihara, contoh baharu kamus perlu dibuat. Contohnya, untuk menamakan semula kunci 2 kepada 'dua':

<code class="python">d = {0:0, 1:1, 2:2, 3:3}
new_d = {
    "two" if k == 2 else k: v for k, v in d.items()
}</code>

Pendekatan yang sama boleh digunakan untuk OrderedDicts, menggunakan ungkapan penjana:

<code class="python">new_od = OrderedDict(
    (k_new if k == k_old else k, v) for k, v in od.items()
)</code>

Perlu diperhatikan bahawa mengubah suai kunci itu sendiri, seperti yang dicadangkan oleh soalan, biasanya tidak boleh dilaksanakan kerana kunci dalam kamus biasanya boleh dicincang dan tidak boleh diubah.

Atas ialah kandungan terperinci Bagaimana untuk menamakan semula Kunci Kamus dalam Python Tanpa Penugasan Semula atau Lelaran?. 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