Bisakah kita mengganti nama kunci dalam kamus python?

Inti dari kamus adalah pencariannya cepat, tetapi Anda tidak menggunakannya meskipun keyMapping Anda sudah menjadi kamus. Mari kita lihat kode Anda

prettyDict = {}
for mkey, mval in keyMapping.items():
    for ukey in uglyDict.keys():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]

Bahkan jika uglyDict kecil, Anda mengulangi semua elemen pemetaan kunci. Ini tampaknya menjadi titik awal yang buruk, jadi mari kita balikkan kedua putaran itu

prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
_

Di baris terakhir, mkey_ sama dengan

prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
0, sehingga kita dapat mengubahnya menjadi
prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
1, dan tentu saja Anda tahu cara menghindari pencarian itu sama sekali

prettyDict = {}
for ukey, uval in uglyDict.items():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uval
_

Sekarang mari kita berkonsentrasi pada bagian tengah

    for mkey, mval in keyMapping.items():
        if mkey == ukey:

Di sini kita mencari nilai

prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
0 di keyMapping, tapi tentunya untuk itulah kamus dan kita tidak perlu mengulangi semua item untuk melakukannya

prettyDict = {}
for ukey, uval in uglyDict.items():
    if ukey in keyMapping:
        mval = keyMapping[ukey]
        prettyDict[mval] = uval

Ini jauh lebih baik. Dari sini, kita dapat merumuskan ulang ini menggunakan pemahaman kamus seperti dalam jawaban ggorien, jika Anda menginginkannya

prettyDict = {
    keyMapping[ukey]: uval
    for ukey, uval in uglyDict.items()
    if ukey in keyMapping
}
_

Lebih penting lagi, Anda harus memutuskan bagaimana menangani kasus yang

prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
0 tidak ada di keyMapping. (Contoh Anda sepertinya salah dengan
prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
6, btw. ) Jika ini akan menjadi kesalahan, hilangkan saja
prettyDict = {}
for ukey in uglyDict.keys():
    for mkey, mval in keyMapping.items():
        if mkey == ukey:
            prettyDict[mval] = uglyDict[mkey]
7 dan tangani pengecualian di tempat lain. Atau mungkin Anda ingin menyimpan kunci asli dalam kasus itu

Contoh pertama menunjukkan cara mengganti nama kunci kamus tanpa mempertahankan urutan dalam kamus

Kamus mempertahankan urutan penyisipan kunci yang dimulai dengan Python v3. 7

Kami pertama kali menggunakan metode dict.pop()_ untuk menghapus kunci lama dari kamus

Metode dict.pop()_ menghapus kunci kamus yang ditentukan dan mengembalikan nilai yang sesuai

Metode dict.pop()_ juga dapat diberikan argumen kedua - nilai default yang akan dikembalikan jika kunci yang ditentukan tidak ada dalam kamus

Jika Anda tidak memberikan nilai default dan kuncinya tidak ada dalam kamus, KeyError akan dimunculkan

Karena metode dict.pop() mengembalikan nilai yang dihapus, yang harus kita lakukan adalah menggunakan notasi braket untuk menetapkan kunci baru dengan nilai yang ditentukan ke kamus

Namun, saat menggunakan pendekatan ini, urutan kunci dalam kamus tidak dipertahankan

Anda dapat menggunakan pemahaman dict jika Anda perlu mempertahankan urutan kunci kamus

Ganti nama Kunci kamus menggunakan pemahaman dict

Untuk mengganti nama kunci kamus

  1. Gunakan pemahaman dict untuk mengulangi item kamus
  2. Periksa apakah kunci saat ini sama dengan kunci yang akan diganti
  3. Jika kondisi terpenuhi, kembalikan kunci baru, jika tidak, kembalikan kunci saat ini

Metode ini mengembalikan tampilan baru item kamus (pasangan (kunci, nilai))

Kami menggunakan pemahaman dikt untuk mengulangi objek tampilan

Pemahaman dict sangat mirip dengan pemahaman daftar

Mereka melakukan beberapa operasi untuk setiap pasangan nilai kunci dalam kamus atau memilih subset dari pasangan nilai kunci yang memenuhi syarat

Pada setiap iterasi, kami memeriksa apakah kunci saat ini adalah yang akan diganti dan mengembalikan nama kunci baru jika kondisinya terpenuhi

Jika kondisi tidak terpenuhi, kami mengembalikan kunci apa adanya

Atau, Anda dapat menggunakan for loop

Ganti nama Kunci kamus menggunakan for loop

Untuk mengganti nama kunci kamus

  1. Gunakan loop for untuk mengulangi item kamus
  2. Periksa apakah setiap kunci adalah yang akan diganti
  3. Jika kondisi terpenuhi, tetapkan kunci baru ke kamus baru
  4. Jika tidak, tetapkan kunci saat ini ke kamus baru

Kami menggunakan for loop untuk mengulangi item kamus

Pada setiap iterasi, kami memeriksa apakah kunci saat ini yang akan diganti

Jika kondisi terpenuhi, kami menetapkan kunci baru ke kamus baru, jika tidak, kami menetapkan kunci saat ini

Pendekatan ini juga mempertahankan urutan kunci dalam kamus

Pendekatan mana yang Anda pilih adalah masalah preferensi pribadi. Saya akan menggunakan pemahaman dict karena menurut saya cukup langsung dan mudah dibaca

Bagaimana Anda mengganti nama kunci dalam kamus dengan python?

Ubah kunci kamus dengan Python .
Tambahkan item baru lalu hapus yang lama. Dengan pernyataan del. Dengan metode pop()
Tentukan fungsi untuk mengubah kunci kamus. Jika kunci lama tidak ada, tambahkan item baru. Jika kunci lama tidak ada, jangan lakukan apa pun

Bisakah kita mengubah kunci dalam kamus?

Karena kunci adalah apa yang kamus gunakan untuk mencari nilai, Anda tidak dapat benar-benar mengubahnya. Hal terdekat yang dapat Anda lakukan adalah menyimpan nilai yang terkait dengan kunci lama, menghapusnya, lalu menambahkan entri baru dengan kunci pengganti dan nilai yang disimpan.

Bagaimana Anda mengubah nilai kunci dalam kamus dengan python?

Nilai Kamus Python dapat diperbarui menggunakan dua cara berikut i. e. menggunakan metode update() dan juga, menggunakan tanda kurung siku . Kamus mewakili pasangan kunci-nilai dalam Python, diapit oleh kurung kurawal. Kuncinya unik dan titik dua memisahkannya dari nilai, sedangkan koma memisahkan item.

Bisakah Anda memodifikasi kamus dengan Python?

Memodifikasi nilai dalam kamus sangat mirip dengan memodifikasi elemen dalam daftar. Anda memberi nama kamus dan kemudian kunci dalam tanda kurung siku, dan mengaturnya sama dengan nilai baru .