Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Triển khai Dictionary trong Python 3

Dictionary (dict) là cấu trúc dữ liệu ánh xạ key → value, dùng cặp ngoặc nhọn {}. Key phải immutable (hashable), value bất kỳ. Python 3.7+ bảo chứng thứ tự insertion order.

1. Tạo Dictionary

# Cách 1: Dict literal
dict1 = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}

# Cách 2: dict() từ iterable cặp (key, value)
dict2 = dict([('day1', 'Mon'), ('day2', 'Tue'), ('day3', 'Wed')])

# Cách 3: dict() từ keyword arguments
dict3 = dict(day1='Mon', day2='Tue', day3='Wed')

# Cách 4: Dictionary comprehension
dict4 = {f'day{i}': d for i, d in enumerate(['Mon', 'Tue', 'Wed'], 1)}

print(dict1)  # {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}

2. Nested Dictionary (Dict lồng)

data = {
    'day1': 'Mon',
    'day2': 'Tue',
    'weekend': {
        'd1': 'Saturday',
        'd2': 'Sunday'
    }
}
print(data['weekend']['d1'])  # Saturday

3. Truy cập giá trị

d = {'a': 1, 'b': 2}
print(d['a'])        # 1 - KeyError nếu key không tồn tại
print(d.get('a'))    # 1 - trả None nếu không có
print(d.get('c', 0)) # 0 - default value
print(d.setdefault('c', 3))  # 3, và thêm 'c':3 vào dict

4. Thêm/Cập nhật phần tử

d = {'a': 1}
d['b'] = 2        # Thêm mới
d['a'] = 10       # Cập nhật
d.update({'c': 3, 'd': 4})  # Thêm nhiều
print(d)  # {'a': 10, 'b': 2, 'c': 3, 'd': 4}

5. Xóa phần tử

d = {'a': 1, 'b': 2, 'c': 3}
del d['a']           # Xóa key 'a'
val = d.pop('b')     # Xóa và trả về value (2)
last = d.popitem()   # Xóa và trả về (key, value) cặp cuối (Python 3.7+)
d.clear()            # Xóa tất cả
print(d)  # {}

6. Duyệt Dictionary

d = {'a': 1, 'b': 2, 'c': 3}

for key in d:           # duyệt key
    print(key)

for key in d.keys():    # explicit keys
    print(key)

for value in d.values(): # duyệt value
    print(value)

for key, value in d.items(): # duyệt cặp (khuyên dùng)
    print(key, value)

7. Dictionary Comprehension

# Tạo dict từ 2 list
keys = ['a', 'b', 'c']
vals = [1, 2, 3]
d = {k: v for k, v in zip(keys, vals)}

# Filter dict
d = {k: v for k, v in d.items() if v > 1}

# Swap key-value (value phải unique)
d = {v: k for k, v in d.items()}

8. Merge Dictionary (Python 3.9+)

d1 = {'a': 1, 'b': 2}
d2 = {'b': 3, 'c': 4}

# Union operator |
merged = d1 | d2        # {'a': 1, 'b': 3, 'c': 4} (d2 ghi đè d1)
d1 |= d2                # In-place update d1

Kết luận Dictionary là cấu trúc dữ liệu cốt lõi Python. Nắm vững: tạo, truy cập an toàn (get), thêm/sửa/xóa, duyệt (items), comprehension, merge (|). Hiệu năng O(1) trung bình cho lookup/insert/delete.