Độ dài từ điển lồng nhau của Python

Một từ điển có thể chứa một từ điển khác, từ điển này có thể chứa chính các từ điển, v.v. với độ sâu tùy ý. Điều này được gọi là từ điển lồng nhau

Từ điển lồng nhau là một trong nhiều cách để biểu diễn thông tin có cấu trúc [tương tự như 'bản ghi' hoặc 'cấu trúc' trong các ngôn ngữ khác]

Tạo một từ điển lồng nhau

Từ điển lồng nhau được tạo giống như cách tạo từ điển thông thường. Sự khác biệt duy nhất là mỗi giá trị là một từ điển khác

Hãy xây dựng một từ điển lưu trữ hồ sơ nhân viên

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

Trình tạo dict[]

Có một số cách để tạo từ điển lồng nhau bằng cách sử dụng hàm tạo kiểu có tên dict[]

Để tạo một từ điển lồng nhau, chỉ cần chuyển khóa từ điển. cặp giá trị làm đối số từ khóa cho

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 Constructor

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'}}

Bạn có thể sử dụng hàm dict[] cùng với hàm zip[] để kết hợp các danh sách khóa và giá trị riêng biệt thu được tự động trong thời gian chạy

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'}}

Bạn thường muốn tạo một từ điển với các giá trị mặc định cho mỗi khóa. Phương thức fromkeys[] cung cấp một cách để làm điều này

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

D = dict.fromkeys[IDs, Defaults]

print[D]
# Prints {'emp1': {'name': '', 'job': ''},
#         'emp2': {'name': '', 'job': ''},
#         'emp3': {'name': '', 'job': ''}}

Truy cập các mục từ điển lồng nhau

Bạn có thể truy cập các mục riêng lẻ trong từ điển lồng nhau bằng cách chỉ định khóa trong nhiều dấu ngoặc vuông

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

Nếu bạn tham chiếu đến một khóa không có trong từ điển lồng nhau, một ngoại lệ sẽ được đưa ra

print[D['emp1']['salary']]
# Triggers KeyError: 'salary'

Để tránh trường hợp ngoại lệ như vậy, bạn có thể sử dụng phương thức get[] từ điển đặc biệt. Phương thức này trả về giá trị cho khóa nếu khóa có trong từ điển, nếu không thì

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, vì vậy phương thức này không bao giờ tăng
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

Thay đổi các mục từ điển lồng nhau

Để thay đổi giá trị của một mục cụ thể trong từ điển lồng nhau, hãy tham khảo khóa của nó

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

Thêm hoặc cập nhật các mục từ điển lồng nhau

Dễ dàng thêm hoặc cập nhật các mục từ điển lồng nhau. Chỉ cần tham khảo mục theo khóa của nó và gán giá trị. Nếu khóa đã có trong từ điển, giá trị của nó sẽ được thay thế bằng khóa mới

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'}}
1

Nếu khóa mới, nó sẽ được thêm vào từ điển với giá trị của nó

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'}}
2

Hợp nhất hai từ điển lồng nhau

Sử dụng phương thức update[] tích hợp để hợp nhất các khóa và giá trị của một từ điển lồng vào một từ điển khác. Lưu ý rằng phương pháp này sẽ ghi đè mù quáng các giá trị của cùng một khóa nếu có xung đột

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

Tại đây, bản ghi 'emp2′ được cập nhật trong khi 'emp3′ được thêm vào từ điển

Xóa các mục từ điển lồng nhau

Có một số cách để xóa các mục khỏi từ điển lồng nhau

Xóa một mục bằng phím

Nếu bạn biết khóa của mục mình muốn, bạn có thể sử dụng phương thức pop[] . Nó xóa khóa và trả về giá trị của nó

Bạn có thể lấy độ dài của một từ điển bằng Python không?

Để tính độ dài của từ điển, chúng ta có thể sử dụng phương thức len[] tích hợp sẵn của Python . Phương thức len[] trả về số lượng khóa trong từ điển Python.

Bạn có thể sử dụng LEN[] trên từ điển không?

Để xác định một từ điển có bao nhiêu mục [cặp khóa-giá trị], hãy sử dụng phương thức len[] .

Kích thước của một từ điển trong Python là bao nhiêu?

Kích thước từ điển có thể có nghĩa là độ dài hoặc dung lượng mà từ điển chiếm trong bộ nhớ . Để tìm số lượng phần tử được lưu trữ trong từ điển, chúng ta có thể sử dụng hàm len[]. Để tìm kích thước của từ điển theo byte, chúng ta có thể sử dụng hàm getsizeof[] của mô-đun sys.

Bạn có thể lồng một từ điển Python bao nhiêu lần?

Giới hạn duy nhất là bộ nhớ . Với bộ nhớ vô hạn, bạn có thể lồng các đối tượng Python vô hạn. Vì lợi ích của sự tỉnh táo của tôi, tôi đã giết nó ở 30 triệu đối tượng mặc dù.

Chủ Đề