Dalam artikel ini, anda akan belajar mengenai kamus bersarang di Python. Lebih khusus lagi, anda akan belajar membuat kamus bersarang, mengakses elemen, mengubah suai dan sebagainya dengan bantuan contoh.
Di Python, kamus adalah koleksi item yang tidak tersusun. Sebagai contoh:
kamus = ('kunci': 'nilai', 'kunci_2': 'nilai_2')
Di sini, kamus mempunyai key:value
pasangan tertutup dalam kurungan keriting ()
.
Untuk mengetahui lebih lanjut mengenai kamus, sila lawati Kamus Python.
Apakah Kamus Bersarang di Python?
Di Python, kamus bersarang adalah kamus di dalam kamus. Ini adalah koleksi kamus ke dalam satu kamus.
nested_dict = ('dictA': ('key_1': 'value_1'),'ictB ': (' key_2 ':' value_2 '))
Di sini, nested_dict adalah kamus bersarang dengan kamus dictA
dan dictB
. Mereka adalah dua kamus yang masing-masing mempunyai kunci dan nilai tersendiri.
Buat Kamus Bersarang
Kami akan membuat kamus orang dalam kamus.
Contoh 1: Cara membuat kamus bersarang
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Apabila kita menjalankan program di atas, ia akan menghasilkan:
(1: ('nama': 'John', 'usia': '27', 'seks': 'Lelaki'), 2: ('nama': 'Marie', 'usia': '22', 'seks ':' Perempuan '))
Dalam program di atas, orang adalah kamus bersarang. Kamus dalaman 1
dan 2
diberikan kepada orang. Di sini, kedua-dua kamus mempunyai kunci name
, age
, sex
dengan nilai-nilai yang berbeza. Sekarang, kami mencetak hasil carian orang.
Akses elemen Kamus Bersarang
Untuk mengakses elemen kamus bersarang, kami menggunakan ()
sintaks pengindeksan di Python.
Contoh 2: Akses elemen menggunakan sintaks ()
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people(1)('name')) print(people(1)('age')) print(people(1)('sex'))
Apabila kita menjalankan program di atas, ia akan menghasilkan:
John 27 Lelaki
Dalam program di atas, kami mencetak nilai kunci name
menggunakan people(1)('name')
dari kamus dalaman 1
. Begitu juga, kami mencetak nilai age
dan sex
satu persatu.
Tambahkan elemen ke Kamus Bersarang
Contoh 3: Bagaimana cara menukar atau menambahkan elemen dalam kamus bersarang?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) people(3) = () people(3)('name') = 'Luna' people(3)('age') = '24' people(3)('sex') = 'Female' people(3)('married') = 'No' print(people(3))
Apabila kita menjalankan program di atas, ia akan menghasilkan:
('nama': 'Luna', 'usia': '24', 'seks': 'Perempuan', 'berkahwin': 'Tidak')
Dalam program di atas, kami membuat kamus kosong 3
di dalam kamus orang.
Kemudian, kami menambah key:value
pasangan iaitu people(3)('Name') = 'Luna'
di dalam kamus 3
. Begitu juga, kami melakukan ini untuk kunci age
, sex
dan married
satu persatu. Apabila kami mencetak people(3)
, kami mendapat key:value
pasangan kamus 3
.
Contoh 4: Tambahkan kamus lain ke kamus bersarang
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No')) people(4) = ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes') print(people(4))
Apabila kita menjalankan program di atas, ia akan menghasilkan:
('nama': 'Peter', 'usia': '29', 'seks': 'Lelaki', 'berkahwin': 'Ya')
Dalam program di atas, kami menetapkan kamus literal untuk people(4)
. Secara harfiah mempunyai kunci name
, age
dan sex
dengan nilai masing-masing. Kemudian kami mencetak people(4)
, untuk melihat bahawa kamus 4
ditambahkan pada orang kamus bersarang.
Padamkan elemen dari Kamus Bersarang
Di Python, kami menggunakan pernyataan "del" untuk menghapus elemen dari kamus bersarang.
Contoh 5: Bagaimana cara menghapus elemen dari kamus bersarang?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes')) del people(3)('married') del people(4)('married') print(people(3)) print(people(4))
Apabila kita menjalankan program di atas, ia akan menghasilkan:
('name': 'Luna', 'age': '24', 'sex': 'Female') ('name': 'Peter', 'age': '29', 'sex': 'Lelaki')
Dalam program di atas, kami memadamkan key:value
pasangan married
dari kamus dalaman 3
dan 4
. Kemudian, kami mencetak people(3)
dan people(4)
untuk mengesahkan perubahan.
Contoh 6: Bagaimana cara menghapus kamus dari kamus bersarang?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male')) del people(3), people(4) print(people)
Apabila kita menjalankan program di atas, ia akan menghasilkan:
(1: ('nama': 'John', 'usia': '27', 'seks': 'Lelaki'), 2: ('nama': 'Marie', 'usia': '22', 'seks ':' Perempuan '))
Dalam program di atas, kami memadamkan kamus dalaman 3
dan 4
penggunaan del
dari orang kamus bersarang. Kemudian, kami mencetak orang kamus bersarang untuk mengesahkan perubahan.
Pengulangan Melalui Kamus Bersarang
Dengan menggunakan gelung, kita dapat mengulangi setiap elemen dalam kamus bersarang.
Example 7: How to iterate through a Nested dictionary?
people = (1: ('Name': 'John', 'Age': '27', 'Sex': 'Male'), 2: ('Name': 'Marie', 'Age': '22', 'Sex': 'Female')) for p_id, p_info in people.items(): print("Person ID:", p_id) for key in p_info: print(key + ':', p_info(key))
When we run above program, it will output:
Person ID: 1 Name: John Age: 27 Sex: Male Person ID: 2 Name: Marie Age: 22 Sex: Female
In the above program, the first loop returns all the keys in the nested dictionary people. It consist of the IDs p_id of each person. We use these IDs to unpack the information p_info of each person.
The second loop goes through the information of each person. Then, it returns all of the keys name
, age
, sex
of each person's dictionary.
Now, we print the key of the person’s information and the value for that key.
Key Points to Remember:
- Nested dictionary is an unordered collection of dictionary
- Slicing Nested Dictionary is not possible.
- We can shrink or grow nested dictionary as need.
- Like Dictionary, it also has key and value.
- Kamus diakses menggunakan kunci.