Cơ bảneducational

Dictionary trong Python: Hướng dẫn đầy đủ từ cơ bản đến nâng cao

8 phút đọc0 lượt xem
#python#dictionary#dict#key-value#json#comprehension

Dictionary trong Python: Hướng dẫn đầy đủ từ cơ bản đến nâng cao

Trong Python, Dictionary (dict) là một trong những cấu trúc dữ liệu quan trọng và được dùng nhiều nhất. Dictionary lưu dữ liệu theo cặp key–value, giúp tra cứu thông tin cực nhanh – tương tự như từ điển thực: tra "key" → lấy "value".

Dictionary trong Python là gì?

Dictionary là kiểu dữ liệu lưu cặp key–value với các đặc điểm:

  • Key phải là immutable (string, int, tuple)
  • Value có thể là bất kỳ kiểu dữ liệu nào
  • Key không được trùng lặp
  • Từ Python 3.7+: Dictionary giữ thứ tự chèn
# Tạo dictionary cơ bản
person = {
    "name": "Nguyễn An",
    "age": 22,
    "city": "Hà Nội"
}

print(type(person))   # <class 'dict'>
print(len(person))    # 3 (số cặp key-value)

Truy cập giá trị trong Dictionary

person = {"name": "An", "age": 22, "city": "HCM"}

# Cách 1: Dùng key trực tiếp – lỗi nếu key không tồn tại
print(person["name"])   # "An"

# Cách 2: get() – an toàn hơn, trả về None nếu không có key
print(person.get("age"))              # 22
print(person.get("phone"))            # None
print(person.get("phone", "Chưa có")) # "Chưa có" (giá trị mặc định)

Thêm và cập nhật phần tử

person = {"name": "An", "age": 22}

# Cập nhật giá trị hiện có
person["age"] = 23

# Thêm key mới
person["email"] = "an@gmail.com"

# update() – cập nhật nhiều key cùng lúc
person.update({"age": 24, "city": "Đà Nẵng"})

Xóa phần tử khỏi Dictionary

person = {"name": "An", "age": 22, "city": "HCM"}

# pop(): xóa theo key, trả về giá trị đã xóa
city = person.pop("city")   # city = "HCM"

# del: xóa theo key
del person["age"]

# clear(): xóa tất cả
person.clear()   # → {}

Các phương thức Dictionary quan trọng

info = {"name": "An", "age": 22, "city": "HCM"}

# keys(): trả về tất cả keys
print(info.keys())    # dict_keys(['name', 'age', 'city'])

# values(): trả về tất cả values
print(info.values())  # dict_values(['An', 22, 'HCM'])

# items(): trả về cặp (key, value)
print(info.items())   # dict_items([('name', 'An'), ...])

# Kiểm tra key có tồn tại không
print("name" in info)     # True
print("phone" in info)    # False

Lặp qua Dictionary

person = {"name": "An", "age": 22, "city": "HCM"}

# Lặp qua cặp key-value (cách phổ biến nhất)
for key, value in person.items():
    print(f"{key}: {value}")
# name: An
# age: 22
# city: HCM

Dict Comprehension

# Tạo dict từ list
names = ["An", "Bình", "Cường"]
lengths = {name: len(name) for name in names}
print(lengths)  # {"An": 2, "Bình": 4, "Cường": 5}

# Với điều kiện lọc
scores = {"An": 8, "Bình": 6, "Cường": 9, "Dung": 5}
passed = {name: score for name, score in scores.items() if score >= 7}
print(passed)   # {"An": 8, "Cường": 9}

Dictionary và JSON

import json

# Python dict → JSON string (để gửi lên API)
person = {"name": "An", "age": 22}
json_str = json.dumps(person)
print(json_str)   # '{"name": "An", "age": 22}'

# JSON string → Python dict (khi nhận dữ liệu từ API)
json_data = '{"name": "An", "age": 22}'
person = json.loads(json_data)
print(person["name"])  # "An"

Bảng tổng hợp các phương thức Dictionary

Phương thứcMô tảVí dụ
d[key]Lấy giá trị (lỗi nếu không có key)d["name"]
d.get(key)Lấy giá trị (None nếu không có)d.get("name")
d[key] = valThêm/cập nhật keyd["city"] = "HN"
d.update(dict2)Cập nhật nhiều keyd.update({"a": 1})
d.pop(key)Xóa key, trả về valued.pop("name")
del d[key]Xóa keydel d["name"]
d.clear()Xóa tất cảd.clear()
d.keys()Tất cả keysd.keys()
d.values()Tất cả valuesd.values()
d.items()Tất cả cặp (key, value)d.items()
key in dKiểm tra key tồn tại"name" in d

Bài viết liên quan

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

100 Days of Code: The Complete Python Pro Bootcamp

Học Python qua 100 dự án thực tế. Phù hợp cho người mới bắt đầu.

4.7499.000 ₫
Xem khóa học →

Python for Data Science and Machine Learning Bootcamp

Học Data Science với Python: pandas, matplotlib, scikit-learn.

4.6499.000 ₫
Xem khóa học →

Automate the Boring Stuff with Python

Tự động hóa công việc lặp đi lặp lại bằng Python.

4.6399.000 ₫
Xem khóa học →
Quảng cáo