Từ điển lồng nhau trong Python là một từ điển với một từ điển khác hoặc các từ điển được lồng bên trong [từ điển của các từ điển hoặc bộ sưu tập các bộ sưu tập]. Từ điển lồng nhau là một cách để biểu diễn dữ liệu có cấu trúc [tương tự như mối quan hệ của [các] bảng cơ sở dữ liệu]. Tương tự cho khái niệm này là Búp bê làm tổ của Nga.
Bài viết của chúng tôi tập trung vào các cách khác nhau để truy xuất dữ liệu từ một từ điển lồng nhau
Tạo một từ điển lồng nhau
Đoạn mã sau tạo một từ điển chứa các id duy nhất [1000, 1001, v.v. ]. Ngoài ra, mỗi id có một từ điển lồng nhau được liên kết với thông tin thích hợp liên quan đến id đó [tên, công việc, mức lương]
# 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}}
Truy cập các giá trị lồng nhau bằng dấu ngoặc vuông
Một cách để truy cập [các] giá trị từ một từ điển lồng nhau [
765006] là chỉ định một khóa bên trong dấu ngoặc vuông. Nếu khóa không tồn tại, KeyError sẽ xảy ra, hiển thị tên khóa vi phạm. Đoạn code bên dưới truy cập và xuất ra lương cho nhân viên 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]
đầu ra
76500
Truy cập các giá trị bằng cách sử dụng get[]
Một cách khác để truy cập [các] giá trị trong từ điển lồng nhau [_______26] là sử dụng phương thức
# 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. Phương thức này trả về giá trị cho một khóa được chỉ định. Nếu khóa được chỉ định không tồn tại, phương thức
# 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 trả về
# 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 [ngăn chặn một
# 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]. Đoạn code bên dưới truy cập và xuất công việc cho nhân viên 1003
# 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[1003].get['job'] print[result]
đầu ra
________số 8Lặp lại Từ điển lồng nhau bằng vòng lặp For
Dưới đây là mã để duyệt qua một từ điển lồng nhau
for id, info in employees.items[]: print[id] for k in info: print[k, info[k]]
- Dòng [1] gọi vòng lặp for, tham chiếu
# 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 từ từ điển cấp cao nhất,# 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 từ từ điển lồng nhau và gọi# 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 để lấy dữ liệu thích hợp- Dòng [2] xuất
# 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 cho mỗi bản ghi trong từ điển cấp cao nhất - Dòng [3] lặp qua từ điển lồng nhau cho mỗi
# 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- Dòng [4] xuất khóa. cặp giá trị đến thiết bị đầu cuối
- Dòng [2] xuất
Đầu ra – bản ghi đầu tiên từ Nhân viên
Đối với ví dụ này, chỉ bản ghi đầu tiên hiển thị
# 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
Truy cập các giá trị lồng nhau bằng Pandas
Thư viện Pandas sẽ chuyển đổi từ điển lồng nhau thành DataFrame để truy cập dữ liệu trong phần này
# 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
- Dòng [1] nhập thư viện và gán nó làm tham chiếu đối tượng cho
76500
0. - Dòng [2] tạo DataFrame và đặt đầu ra thành
76500
1. DataFrame có hai đối số. từ điển76500
6 và76500
3. Đối số76500
4 buộc# 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 hiển thị ở cột ngoài cùng bên trái - Dòng [3] bắt đầu lặp vòng lặp. Câu lệnh này lặp lại cho đến khi không còn hàng nào để hiển thị [______26]
- Dòng [4] xuất nội dung của
# 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 ra thiết bị đầu cuối - Dòng [5] xuất các giá trị được liên kết với
# 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 đó đến thiết bị đầu cuối
- Dòng [4] xuất nội dung của
Đầu ra [Khung dữ liệu Pandas]
têncông việclương1000Dereksupport895671001Alicecoder942751002Luciawriter765001003Micahtrainer813541004Sarahsales64152Đầu ra [bản ghi đầu tiên từ Nhân viên]
765005
Lập Trình Hài Hước
💡 Lập trình là 10% khoa học, 20% sự khéo léo và 70% để sự khéo léo làm việc với khoa học