Kamus bersarang Python adalah kamus dengan kamus atau kamus lain yang bersarang di dalamnya (kamus kamus atau kumpulan koleksi). Kamus bersarang adalah salah satu cara untuk merepresentasikan data terstruktur (mirip dengan hubungan tabel database). Analogi untuk konsep ini adalah Boneka Bersarang Rusia.
Artikel kami berfokus pada berbagai cara untuk mengambil data dari kamus bersarang
Buat Kamus Bersarang
Kode berikut membuat kamus yang berisi id unik (1000, 1001, dll. ). Selain itu, setiap id memiliki kamus bersarang terkait dengan informasi terkait yang relevan dengan id tersebut (nama, pekerjaan, gaji)
Akses Nilai Bersarang menggunakan Tanda Kurung Persegi
Salah satu cara untuk mengakses nilai dari kamus bersarang (employees) adalah dengan menentukan kunci di dalam tanda kurung siku. Jika kunci tidak ada, terjadi KeyError, menampilkan nama kunci yang bermasalah. Kode di bawah ini mengakses dan menampilkan gaji untuk karyawan 1002
# raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)_Keluaran
76500Akses Nilai menggunakan get()
Cara lain untuk mengakses nilai dalam kamus bersarang (employees) adalah dengan menggunakan metode # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)1. Metode ini mengembalikan nilai untuk kunci tertentu. Jika kunci yang ditentukan tidak ada, metode # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)_2 mengembalikan # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)3 (mencegah # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)4). Kode di bawah ini mengakses dan menampilkan pekerjaan untuk karyawan 1003
Keluaran
trainer_Ulangi Nested Dictionary menggunakan For Loop
Di bawah ini adalah kode untuk melintasi kamus bersarang
for id, info in employees.items(): print(id) for k in info: print(k, info[k])_- Baris [1] memanggil for loop, referensi # raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
result = employees[1002]['salary']
print(result)5 dari top-level dictionary, # raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
result = employees[1002]['salary']
print(result)6 dari nested dictionary, dan memanggil # raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
result = employees[1002]['salary']
print(result)7 untuk mengambil data yang sesuai
- Baris [2] mengeluarkan # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)_5 untuk setiap catatan dalam kamus tingkat atas
- Baris [3] melewati kamus bersarang untuk setiap # raw data:
employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567},
1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275},
1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500},
1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354},
1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}}
result = employees[1002]['salary']
print(result)5
- Baris [4] mengeluarkan kunci. pasangan nilai ke terminal
Output – catatan pertama dari Karyawan
Untuk contoh ini, hanya record pertama yang ditampilkan
1000 name Derek job support salary 89567Akses Nilai Bersarang menggunakan Panda
Pustaka Pandas akan mengonversi kamus bersarang menjadi DataFrame untuk mengakses data di bagian ini
import pandas as pd df = pd.DataFrame.from_dict(employees, orient='index') for i, j in df.iterrows(): print(i) print(j)- Baris [1] mengimpor perpustakaan dan menugaskannya sebagai referensi objek ke 765000.
- Baris [2] membuat DataFrame dan mengatur output ke 765001. DataFrame memiliki dua argumen. kamus employees dan 765003. Argumen 76500_4 memaksa # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)5 untuk ditampilkan di kolom paling kiri
- Baris [3] memulai iterasi loop. Pernyataan ini berulang sampai tidak ada lagi baris untuk ditampilkan (765006)
- Baris [4] mengeluarkan isi dari # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)5 ke terminal
- Baris [5] menampilkan nilai yang terkait dengan # raw data: employees = {1000: {'name': 'Derek', 'job': 'support', 'salary': 89567}, 1001: {'name': 'Alice', 'job': 'coder', 'salary': 94275}, 1002: {'name': 'Lucia', 'job': 'writer', 'salary': 76500}, 1003: {'name': 'Micah', 'job': 'trainer', 'salary': 81354}, 1004: {'name': 'Sarah', 'job': 'sales', 'salary': 64152}} result = employees[1002]['salary'] print(result)5 itu ke terminal
Keluaran (Panda DataFrame)
namejobsalary1000Dereksupport895671001Alicecoder942751002Luciawriter765001003Micahtrainer813541004Sarahsales64152Output (rekaman pertama dari Karyawan)
1000 name Derek job support salary 89567 Name: 1000, dtype: objectHumor Pemrograman
💡 Pemrograman adalah 10% sains, 20% kecerdikan, dan 70% mendapatkan kecerdikan untuk bekerja dengan sains