PHP
Python

Trang chủ

Nested dictionary trong Python là gì? Cách sử dụng nested dictionary

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
04/03/2025
12 phút đọc
Theo dõi Vietnix trên

Nested dictionary trong Python là gì? Cách sử dụng nested dictionary

Nested dictionary trong Python là một cấu trúc dữ liệu cho phép lưu trữ các dictionary bên trong một dictionary khác, bạn có thể biểu diễn các dữ liệu phức tạp như thông tin nhiều cấp, dữ liệu JSON hoặc cấu trúc cây một cách linh hoạt. Trong bài viết này, mình sẽ cùng bạn tìm hiểu nested dictionary là gì, cách sử dụng, cũng như các thao tác quan trọng để làm việc hiệu quả với cấu trúc này trong Python.

Những điểm chính

  • Khái niệm: Hiểu nested dictionary trong Python là gì và cách nó hoạt động như một cấu trúc dữ liệu giúp tổ chức thông tin theo nhiều cấp độ.
  • Cách tạo nested dictionary: Biết cách khởi tạo nested dictionary bằng nhiều phương pháp khác nhau, từ việc gán trực tiếp đến sử dụng vòng lặp để tự động tạo cấu trúc.
  • Thêm phần tử vào nested dictionary: Nắm rõ cách cập nhật và bổ sung dữ liệu vào nested dictionary một cách linh hoạt.
  • Truy cập vào các phần tử trong nested dictionary: Tìm hiểu cách truy xuất dữ liệu thông qua Direct Indexing hoặc phương thức get().
  • Cách xóa nested dictionary: Biết cách xóa một phần hoặc toàn bộ nested dictionary một cách an toàn mà không ảnh hưởng đến các phần tử khác.
  • Sử dụng vòng lặp với nested dictionary: Sử dụng vòng lặp để duyệt qua tất cả các cấp độ trong nested dictionary, giúp xử lý dữ liệu hiệu quả hơn.
  • Biết thêm Vietnix là nhà cung cấp dịch vụ lưu trữ tốc độ cao, phù hợp cho các ứng dụng Python đòi hỏi hiệu suất ổn định.
  • Câu hỏi thường gặp: Giải đáp các vấn đề xoay quanh nested dictionary trong Python.

Nested dictionary trong Python là gì?

Nested dictionary trong Python là một dictionary chứa một hoặc nhiều dictionary khác làm giá trị. Nói cách khác, các dictionary có thể lồng nhau để tạo thành một cấu trúc dữ liệu dạng cây, giúp tổ chức và quản lý dữ liệu theo từng cấp độ.

Nested dictionary trong Python là một dictionary chứa một hoặc nhiều dictionary khác làm giá trị
Nested dictionary trong Python là một dictionary chứa một hoặc nhiều dictionary khác làm giá trị

Cách tạo nested dictionary trong Python

Trong Python, một nested dictionary (dictionary lồng nhau) là một dictionary có chứa các dictionary con làm giá trị của các key. Hình thức này giúp tổ chức dữ liệu theo cấu trúc phân cấp, hữu ích trong các ứng dụng cần lưu trữ thông tin theo từng nhóm hoặc danh mục. Có nhiều cách để tạo một nested dictionary trong Python, dưới đây là hai phương pháp phổ biến:

Ví dụ: Giao nhiệm vụ trực tiếp

Cách này cho phép bạn định nghĩa một dictionary có chứa các dictionary con ngay từ đầu.

# Dictionary chứa thông tin dịch vụ hosting tại Vietnix
vietnix_services = {
    "Hosting": {"Loại": "Cloud Hosting", "Hỗ trợ": "24/7"},
    "VPS": {"Loại": "NVMe VPS", "Hỗ trợ": "Kỹ thuật chuyên sâu"},
}
print(vietnix_services)

Trong ví dụ trên, dictionary vietnix_services chứa hai key chính là “Hosting” và “VPS”, mỗi key này lại chứa một dictionary con với thông tin chi tiết về dịch vụ.

Ví dụ: Sử dụng vòng lặp

Phương pháp này giúp tạo nested dictionary một cách linh hoạt khi số lượng phần tử không cố định.

# Tạo dictionary chứa danh sách các gói dịch vụ tại Vietnix
vietnix_services = {}
# Danh sách các loại dịch vụ
service_types = ["Hosting", "VPS"]
# Thêm thông tin vào dictionary bằng vòng lặp
for service in service_types:
    vietnix_services[service] = {"Loại": "Dịch vụ cao cấp", "Hỗ trợ": "Chuyên nghiệp"}
print(vietnix_services)

Trong đoạn code trên, bạn khởi tạo một dictionary trống và sử dụng vòng lặp để thêm các dictionary con vào, giúp việc mở rộng dữ liệu trở nên dễ dàng hơn. Sử dụng nested dictionary không chỉ giúp tổ chức dữ liệu tốt hơn mà còn giúp việc truy xuất và quản lý thông tin trở nên hiệu quả hơn trong các ứng dụng thực tế.

Thêm phần tử vào nested dictionary trong Python

Trong Python, một nested dictionary (dictionary lồng nhau) là một dictionary có chứa dictionary khác làm giá trị. Khi đã tạo một nested dictionary, bạn có thể thêm phần tử vào đó bằng cách truy cập vào dictionary con thông qua key tương ứng, sau đó gán thêm một cặp key-value mới.

Giả sử bạn có một nested dictionary lưu thông tin về các gói dịch vụ của lưu trữ, trong đó mỗi key đại diện cho một loại dịch vụ, còn giá trị là một dictionary chứa các thông tin chi tiết:

# Dictionary chứa thông tin dịch vụ lưu trữ
services = {
    "Hosting": {"storage": "50GB", "bandwidth": "Unlimited"},
    "VPS": {"CPU": "4 cores", "RAM": "8GB"}
}
# Thêm một thông tin mới vào dịch vụ hosting
services["Hosting"]["SSL"] = "Miễn phí"
# Thêm một dịch vụ mới vào dictionary
services["Firewall"] = {"protection": "Anti-DDoS", "level": "Enterprise"}
print(services)
  • Kết quả như sau:

{

‘Hosting’: {‘storage’: ’50GB’, ‘bandwidth’: ‘Unlimited’, ‘SSL’: ‘Miễn phí’},

‘VPS’: {‘CPU’: ‘4 cores’, ‘RAM’: ‘8GB’},

‘Firewall’: {‘protection’: ‘Anti-DDoS’, ‘level’: ‘Enterprise’}

}

Giải thích:

  • Dòng services["Hosting"]["SSL"] = "Miễn phí" thêm một key "SSL" vào dictionary con "Hosting".
  • Dòng services["Firewall"] = {"protection": "Anti-DDoS", "level": "Enterprise"} thêm một dictionary mới "Firewall" vào dictionary chính.

Truy cập vào các phần tử nested dictionary trong Python

Một nested dictionary chứa các dictionary con bên trong, để truy cập vào các phần tử trong cấu trúc này, bạn cần sử dụng chuỗi các key tương ứng với từng cấp độ trong dictionary. Có hai cách phổ biến để thực hiện: Sử dụng dấu ngoặc vuông ([]) hoặc phương thức get().

Ví dụ: Sử dụng Direct Indexing

Cách này cho phép bạn truy xuất trực tiếp giá trị bằng cách chỉ định từng key theo từng cấp độ trong dictionary.

# Dictionary chứa thông tin về các gói dịch vụ hosting Vietnix
services = {
    "Vietnix": {
        "hosting": {"storage": "NVMe", "uptime": "99.99%"},
        "VPS": {"RAM": "16GB", "CPU": "4 cores"}
    },
    "Competitor": {
        "hosting": {"storage": "SSD", "uptime": "99.9%"},
        "VPS": {"RAM": "8GB", "CPU": "2 cores"}
    }
}
# Truy cập loại ổ cứng của dịch vụ hosting Vietnix
vietnix_storage = services["Vietnix"]["hosting"]["storage"]
print("Vietnix hosting sử dụng:", vietnix_storage)
# Truy cập số nhân CPU của dịch vụ VPS
vietnix_cpu = services["Vietnix"]["VPS"]["CPU"]
print("Vietnix VPS có số nhân CPU:", vietnix_cpu)
  • Kết quả như sau:

Vietnix hosting sử dụng: NVMe

Vietnix VPS có số nhân CPU: 4 cores

Ví dụ: Sử dụng phương thức get()

Phương thức get() giúp truy xuất giá trị một cách an toàn, tránh lỗi khi key không tồn tại. Nếu key không được tìm thấy, nó trả về None hoặc một giá trị mặc định do người dùng chỉ định.

# Truy cập thông tin uptime của dịch vụ hosting Vietnix
vietnix_uptime = services.get("Vietnix", {}).get("hosting", {}).get("uptime", "Không tìm thấy")
print("Uptime của Vietnix hosting:", vietnix_uptime)
# Truy cập thông tin của một dịch vụ không tồn tại
unknown_service = services.get("Unknown", {}).get("VPS", {}).get("RAM", "Không tìm thấy")
print("Thông tin dịch vụ không xác định:", unknown_service)
  • Kết quả như sau:

Uptime của Vietnix hosting: 99.99%

Thông tin dịch vụ không xác định: Không tìm thấy

Các trường hợp nên Direct Indexing và get():

  • Direct Indexing: Dùng khi chắc chắn key tồn tại, vì nếu key không có, chương trình sẽ báo lỗi KeyError.
  • Phương thức get(): Dùng khi không chắc chắn key tồn tại để tránh lỗi và có thể cung cấp giá trị mặc định khi key không được tìm thấy.

Việc hiểu cách truy cập nested dictionary sẽ giúp bạn làm việc với dữ liệu dạng JSON, API response hoặc các cấu trúc dữ liệu phức tạp một cách hiệu quả.

Cách xóa nested dictionary trong Python

Để xóa một dictionary con trong nested dictionary, bạn có thể sử dụng từ khóa del. Từ khóa này cho phép loại bỏ một cặp key-value cụ thể khỏi dictionary, giúp quản lý dữ liệu linh hoạt hơn.

Giả sử bạn có một nested dictionary lưu thông tin về các gói dịch vụ lưu trữ:

# Dictionary chứa thông tin dịch vụ
services = {
    "Hosting": {"storage": "50GB", "bandwidth": "Unlimited"},
    "VPS": {"RAM": "4GB", "CPU": "2 Cores"},
    "Firewall": {"protection": "Anti-DDoS", "uptime": "99.99%"}
}
# Xóa dictionary chứa thông tin về dịch vụ VPS
del services["VPS"]
# In lại nested dictionary sau khi xóa
print(services)
  • Kết quả như sau:

{‘Hosting’: {‘storage’: ’50GB’, ‘bandwidth’: ‘Unlimited’}, ‘Firewall’: {‘protection’: ‘Anti-DDoS’, ‘uptime’: ‘99.99%’}}

Sau khi thực hiện lệnh del services[“VPS”], thông tin về dịch vụ VPS đã bị xóa khỏi dictionary, nhưng các dịch vụ khác vẫn được giữ nguyên. Cách làm này giúp bạn quản lý dữ liệu một cách hiệu quả khi cần cập nhật hoặc loại bỏ một phần thông tin trong hệ thống.

Sử dụng vòng lặp với nested dictionary

Khi làm việc với nested dictionary (dictionary lồng nhau), bạn có thể sử dụng vòng lặp để truy xuất và thao tác với từng cấp dữ liệu bên trong. Điều này đặc biệt hữu ích khi xử lý các tập dữ liệu có cấu trúc phức tạp, chẳng hạn như danh sách dịch vụ, thông tin khách hàng hoặc cấu hình hệ thống. Trong Python, bạn có thể sử dụng vòng lặp lồng nhau để duyệt qua tất cả các key và value trong dictionary chính, sau đó tiếp tục duyệt vào các dictionary con bên trong.

Giả sử bạn có một dictionary chứa thông tin về các loại dịch vụ hosting, bao gồm thông tin về tài nguyên đi kèm như dung lượng lưu trữ và băng thông:

# Định nghĩa một nested dictionary
services = {
    "Shared Hosting": {"Storage": "50GB SSD", "Bandwidth": "Không giới hạn"},
    "VPS Hosting": {"Storage": "100GB NVMe", "Bandwidth": "1Gbps"},
    "Dedicated Server": {"Storage": "2TB HDD", "Bandwidth": "10Gbps"}
}
# Duyệt qua từng dịch vụ và thông tin chi tiết
for service, details in services.items():
    print(f"Dịch vụ: {service}")
    for key, value in details.items():
        print(f"  {key}: {value}")
  • Kết quả như sau:

Dịch vụ: Shared Hosting

Storage: 50GB SSD

Bandwidth: Không giới hạn

Dịch vụ: VPS Hosting

Storage: 100GB NVMe

Bandwidth: 1Gbps

Dịch vụ: Dedicated Server

Storage: 2TB HDD

Bandwidth: 10Gbps

Cách tiếp cận này giúp lập trình viên dễ dàng truy xuất thông tin từ nested dictionary mà không cần gọi từng key cụ thể. Điều này đặc biệt hữu ích khi dữ liệu có cấu trúc động hoặc có thể thay đổi trong quá trình xử lý.

Vietnix – Nhà cung cấp dịch vụ hosting tốc độ cao

Vietnix mang đến giải pháp hosting và VPS chất lượng cao, đáp ứng nhu cầu từ cá nhân đến doanh nghiệp với hạ tầng mạnh mẽ, đảm bảo tốc độ truy cập nhanh, ổn định. Với nhiều gói web hosting như Hosting Giá Rẻ, NVMe hosting, Business hosting, WordPress hosting, SEO hosting, MaxSpeed hosting giúp khách hàng dễ dàng lựa chọn giải pháp phù hợp với nhu cầu. Hệ thống backup tự động giúp bảo vệ dữ liệu, trong khi giao diện quản lý trực quan giúp thao tác đơn giản, nhanh chóng. Vietnix cam kết mang lại hiệu suất vượt trội, bảo mật cao và tối ưu chi phí cho mọi khách hàng. Liên hệ ngay!

Thông tin liên hệ:

  • Hotline: 18001093
  • Email: sales@vietnix.com.vn 
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Website: https://vietnix.vn/

Câu hỏi thường gặp

Có thể sử dụng recursion (đệ quy) để thao tác với nested dictionary không?

Có, bạn hoàn toàn có thể sử dụng đệ quy (recursion) để thao tác với nested dictionary trong Python. Đệ quy đặc biệt hữu ích khi bạn không biết trước số cấp độ lồng nhau của dictionary.
Ứng dụng của đệ quy trong nested dictionary:
– Duyệt qua toàn bộ dictionary mà không cần biết trước số cấp độ lồng nhau.
– Tìm kiếm một key cụ thể trong dictionary có nhiều mức lồng nhau.
– Chỉnh sửa hoặc cập nhật giá trị trong dictionary mà không cần lặp từng mức thủ công.

Cách chuyển đổi nested dictionary thành DataFrame trong Pandas?

Bạn có thể dùng Pandas để chuyển nested dictionary thành DataFrame bằng hai cách:
– Dùng pd.DataFrame.from_dict() – Phù hợp khi dữ liệu có 2 cấp lồng nhau, giúp giữ cấu trúc rõ ràng.
– Dùng pd.json_normalize() – Phù hợp khi dữ liệu có nhiều cấp lồng nhau, giúp làm phẳng dữ liệu.

Lời kết

Nested dictionary trong Python là một cấu trúc dữ liệu mạnh mẽ, giúp tổ chức và quản lý dữ liệu có nhiều cấp một cách hiệu quả. Bằng cách hiểu rõ cách tạo, truy cập và thao tác với nested dictionary, bạn có thể xử lý dữ liệu phức tạp một cách linh hoạt hơn. Ngoài ra, việc kết hợp với các phương pháp như vòng lặp, đệ quy hoặc chuyển đổi sang DataFrame sẽ giúp bạn khai thác tối đa tiềm năng của cấu trúc này. Hãy áp dụng ngay vào các dự án thực tế để làm chủ nested dictionary trong Python! 

Mọi người cũng xem:

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn