Cara memasukkan kamus ke kamus lain dengan python

Kamus dapat berisi kamus lain, yang pada gilirannya dapat berisi kamus itu sendiri, dan seterusnya hingga kedalaman yang sewenang-wenang. Ini dikenal sebagai kamus bersarang

Kamus bersarang adalah salah satu dari banyak cara untuk merepresentasikan informasi terstruktur (mirip dengan 'catatan' atau 'struktur' dalam bahasa lain)

Buat Kamus Bersarang

Kamus bersarang dibuat dengan cara yang sama seperti kamus normal dibuat. Satu-satunya perbedaan adalah bahwa setiap nilai adalah kamus lain

Mari buat kamus yang menyimpan catatan karyawan

D = {'emp1': {'name': 'Bob', 'job': 'Mgr'},
     'emp2': {'name': 'Kim', 'job': 'Dev'},
     'emp3': {'name': 'Sam', 'job': 'Dev'}}

Konstruktor dict()

Ada beberapa cara untuk membuat kamus bertingkat menggunakan konstruktor jenis yang disebut dict()

Untuk membuat kamus bersarang, cukup berikan kunci kamus. pasangan nilai sebagai argumen kata kunci untuk

D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'},
         emp2 = {'name': 'Kim', 'job': 'Dev'},
         emp3 = {'name': 'Sam', 'job': 'Dev'})

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}
_5 Konstruktor

D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'},
         emp2 = {'name': 'Kim', 'job': 'Dev'},
         emp3 = {'name': 'Sam', 'job': 'Dev'})

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}
_

Anda dapat menggunakan fungsi dict() bersama dengan fungsi zip() , untuk menggabungkan daftar kunci dan nilai terpisah yang diperoleh secara dinamis saat runtime

IDs = ['emp1','emp2','emp3']

EmpInfo = [{'name': 'Bob', 'job': 'Mgr'},
           {'name': 'Kim', 'job': 'Dev'},
           {'name': 'Sam', 'job': 'Dev'}]

D = dict(zip(IDs, EmpInfo))

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}

Anda sering ingin membuat kamus dengan nilai default untuk setiap kunci. Metode fromkeys() menawarkan cara untuk melakukan ini

IDs = ['emp1','emp2','emp3']
Defaults = {'name': '', 'job': ''}

D = dict.fromkeys(IDs, Defaults)

print(D)
# Prints {'emp1': {'name': '', 'job': ''},
#         'emp2': {'name': '', 'job': ''},
#         'emp3': {'name': '', 'job': ''}}
_

Akses Item Kamus Bersarang

Anda dapat mengakses masing-masing item dalam kamus bersarang dengan menentukan kunci dalam beberapa tanda kurung siku

D = {'emp1': {'name': 'Bob', 'job': 'Mgr'},
     'emp2': {'name': 'Kim', 'job': 'Dev'},
     'emp3': {'name': 'Sam', 'job': 'Dev'}}

print(D['emp1']['name'])
# Prints Bob

print(D['emp2']['job'])
# Prints Dev

Jika Anda merujuk ke kunci yang tidak ada dalam kamus bersarang, pengecualian akan dimunculkan

print(D['emp1']['salary'])
# Triggers KeyError: 'salary'
_

Untuk menghindari pengecualian tersebut, Anda dapat menggunakan metode kamus khusus get(). Metode ini mengembalikan nilai untuk kunci jika kunci ada dalam kamus, jika tidak 

D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'},
         emp2 = {'name': 'Kim', 'job': 'Dev'},
         emp3 = {'name': 'Sam', 'job': 'Dev'})

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}
6, sehingga metode ini tidak pernah memunculkan _
D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'},
         emp2 = {'name': 'Kim', 'job': 'Dev'},
         emp3 = {'name': 'Sam', 'job': 'Dev'})

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}
7

# key present
print(D['emp1'].get('name'))
# Prints Bob

# key absent
print(D['emp1'].get('salary'))
# PrintsNone
_

Ubah Item Kamus Bersarang

Untuk mengubah nilai item tertentu dalam kamus bersarang, lihat kuncinya

D = {'emp1': {'name': 'Bob', 'job': 'Mgr'},
     'emp2': {'name': 'Kim', 'job': 'Dev'},
     'emp3': {'name': 'Sam', 'job': 'Dev'}}

D['emp3']['name'] = 'Max'
D['emp3']['job'] = 'Janitor'

print(D['emp3'])
# Prints {'name': 'Max', 'job': 'Janitor'}

Tambahkan atau Perbarui Item Kamus Bersarang

Menambahkan atau memperbarui item kamus bersarang itu mudah. Cukup rujuk item dengan kuncinya dan berikan nilai. Jika kunci sudah ada di kamus, nilainya diganti dengan yang baru

D = {'emp1': {'name': 'Bob', 'job': 'Mgr'},
     'emp2': {'name': 'Kim', 'job': 'Dev'},
     'emp3': {'name': 'Sam', 'job': 'Dev'}}

D['emp3'] = {'name': 'Max', 'job': 'Janitor'}

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Max', 'job': 'Janitor'}}

Jika kuncinya baru, itu ditambahkan ke kamus dengan nilainya

D = {'emp1': {'name': 'Bob', 'job': 'Mgr'},
     'emp2': {'name': 'Kim', 'job': 'Dev'},
     'emp3': {'name': 'Sam', 'job': 'Dev'}}

D['emp4'] = {'name': 'Max', 'job': 'Janitor'}

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'},
#         'emp4': {'name': 'Max', 'job': 'Janitor'}}

Menggabungkan Dua Kamus Bersarang

Gunakan metode update() bawaan untuk menggabungkan kunci dan nilai dari satu kamus bersarang ke kamus lainnya. Perhatikan bahwa metode ini secara membabi buta menimpa nilai kunci yang sama jika terjadi bentrokan

D = dict(emp1 = {'name': 'Bob', 'job': 'Mgr'},
         emp2 = {'name': 'Kim', 'job': 'Dev'},
         emp3 = {'name': 'Sam', 'job': 'Dev'})

print(D)
# Prints {'emp1': {'name': 'Bob', 'job': 'Mgr'},
#         'emp2': {'name': 'Kim', 'job': 'Dev'},
#         'emp3': {'name': 'Sam', 'job': 'Dev'}}
_0

Di sini catatan ’emp2′ diperbarui sementara ’emp3′ ditambahkan ke kamus

Hapus Item Kamus Bersarang

Ada beberapa cara untuk menghapus item dari kamus bersarang

Hapus Item dengan Kunci

Jika Anda mengetahui kunci item yang diinginkan, Anda dapat menggunakan metode pop() . Itu menghapus kunci dan mengembalikan nilainya

Bagaimana cara menggabungkan dua kamus dengan Python?

Cara termudah untuk menggabungkan dua kamus dengan python adalah dengan menggunakan operator unpacking(**) . Dengan menerapkan operator "**" ke kamus, itu memperluas kontennya menjadi kumpulan pasangan nilai kunci.

Bagaimana cara menggabungkan beberapa kamus?

Cara Menggabungkan Kamus dengan Python .
Menggunakan for loop
Menggunakan dict. memperbarui() metode
Menggunakan operator **
Menggunakan. (Union) operator (untuk Python 3. 9 ke atas)

Bisakah kamus bersarang di dalam kamus?

Kamus dapat berisi kamus , ini disebut kamus bersarang.

Bisakah kamus memiliki kamus lain Python?

Kamus dapat berisi kamus lain , yang pada gilirannya dapat berisi kamus itu sendiri, dan seterusnya hingga kedalaman yang sewenang-wenang.