Mengakses Item Kamus Bersarang Menggunakan Senarai Kekunci
Mengakses struktur kamus bersarang boleh menjadi tugas biasa dalam pengaturcaraan Python. Di sini, kami meneroka pendekatan yang lebih cekap daripada kod yang disediakan untuk mendapatkan dan mengubah suai data dalam kamus kompleks menggunakan senarai kunci.
Menggunakan reduce() untuk Enhanced Traversal
Fungsi reduce() ialah alat yang berkuasa untuk mengubah jujukan nilai dengan menggunakan satu operasi. Dalam kes ini, kita boleh menggunakannya untuk melintasi struktur kamus, mengurangkan senarai kunci kepada satu nilai. Kaedah operator.getitem digunakan sebagai operasi untuk mendapatkan semula peringkat kamus seterusnya pada setiap lelaran.
from functools import reduce # forward compatibility for Python 3 import operator def get_from_dict(data_dict, map_list): return reduce(operator.getitem, map_list, data_dict)
Mengemas kini Data dengan reduce() dan operator.setitem
Untuk mengemas kini nilai kamus bersarang, kami boleh menggunakan semula get_from_dict untuk mendapatkan semula kamus induk dan menggunakan kaedah operator.setitem untuk menetapkan nilai.
def set_in_dict(data_dict, map_list, value): get_from_dict(data_dict, map_list[:-1])[map_list[-1]] = value
Contoh Penggunaan
Mari kita uji kod kami:
data_dict = { "a": { "r": 1, "s": 2, "t": 3 }, "b": { "u": 1, "v": { "x": 1, "y": 2, "z": 3 }, "w": 3 } } map_list = ["a", "r"] print(get_from_dict(data_dict, map_list)) # Output: 1 map_list = ["b", "v", "y"] print(get_from_dict(data_dict, map_list)) # Output: 2 map_list = ["b", "v", "w"] set_in_dict(data_dict, map_list, 4) print(data_dict) # Updated dictionary with "w": 4
Pendekatan yang dipertingkatkan ini memanfaatkan fungsi Python yang berkuasa seperti reduce() dan operator.getitem untuk melaksanakan operasi kamus bersarang dengan cekap, menjadikan kod anda lebih bersih dan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses dan Mengemas kini Item Kamus Bersarang dalam Python Dengan Cekap Menggunakan Senarai Kekunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!