Dictionary là một kiểu dữ liệu tích hợp của Python. Nó là một chuỗi các cặp key-value (khóa-giá trị), trong đó mỗi key là duy nhất và ánh xạ tới một value. Dictionary là các đối tượng mutable (có thể thay đổi được), nghĩa là bạn có thể thay đổi nội dung của chúng mà không làm thay đổi danh tính của chúng.

Tuy nhiên, các key của dictionary là immutable (bất biến) và phải là duy nhất trong mỗi dictionary. Điều này giúp dictionary rất hiệu quả cho việc tra cứu, chèn và xóa.
Dictionary trong Python được sử dụng rộng rãi cho nhiều ứng dụng khác nhau như đếm số lần xuất hiện, nhóm dữ liệu và lưu trữ cấu hình. Mặc dù rất đa năng, nhưng không có phương thức add tích hợp nào cho dictionaries. Thay vào đó, có một số cách để thêm và cập nhật một dictionary, mỗi cách có mục đích và lợi thế riêng.
Trong bài viết này, bạn sẽ tìm hiểu các phương pháp khác nhau để thêm và cập nhật các Python dictionary. Bạn sẽ học cách sử dụng toán tử gán Python (=), phương thức update(), và các toán tử merge và update của dictionary. Cuối cùng, bạn sẽ có một hiểu biết vững chắc về cách quản lý và thao tác với dictionaries một cách hiệu quả trong các chương trình Python của mình.
Bốn phương pháp để thêm vào Python Dictionary
- Sử dụng toán tử gán (
=) - Sử dụng phương thức
update() - Sử dụng toán tử merge (
|) - Sử dụng toán tử update (
|=)
Thêm vào Python Dictionary bằng toán tử gán =
Bạn có thể sử dụng toán tử gán = để thêm một key mới vào một dictionary:
dict[key] = value
Nếu một key đã tồn tại trong dictionary, thì toán tử gán sẽ cập nhật, hay ghi đè giá trị của nó.
Ví dụ sau minh họa cách tạo một dictionary mới và sau đó sử dụng toán tử gán = để cập nhật một value và thêm các cặp key-value:
dict_example = {'a': 1, 'b': 2}
print("original dictionary: ", dict_example)
dict_example['a'] = 100 # existing key, overwrite
dict_example['c'] = 3 # new key, add
dict_example['d'] = 4 # new key, add
print("updated dictionary: ", dict_example)
Kết quả là:
Output
original dictionary: {'a': 1, 'b': 2}
updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4}
Đầu ra cho thấy value của ‘a’ bị ghi đè bởi value mới, value của ‘b’ không thay đổi, và các cặp key-value mới được thêm vào cho ‘c’ và ‘d’.
Thêm vào Python Dictionary mà không ghi đè giá trị
Sử dụng toán tử gán = sẽ ghi đè các value của các key hiện có bằng các value mới. Nếu bạn biết rằng chương trình của mình có thể có các key trùng lặp, nhưng bạn không muốn ghi đè các value gốc, thì bạn có thể thêm các value một cách có điều kiện bằng cách sử dụng một câu lệnh if.
Tiếp tục với ví dụ từ phần trước, bạn có thể sử dụng các câu lệnh if để chỉ thêm các cặp key-value mới vào dictionary:
dict_example = {'a': 1, 'b': 2}
print("original dictionary: ", dict_example)
dict_example['a'] = 100 # existing key, overwrite
dict_example['c'] = 3 # new key, add
dict_example['d'] = 4 # new key, add
print("updated dictionary: ", dict_example)
# add the following if statements
if 'c' not in dict_example.keys():dict_example['c'] = 300if 'e' not in dict_example.keys():dict_example['e'] = 5print("conditionally updated dictionary: ", dict_example)
Đầu ra là:
Output
original dictionary: {'a': 1, 'b': 2}
updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4}
conditionally updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
Đầu ra cho thấy, vì có điều kiện if, value của ‘c’ đã thay đổi khi dictionary được cập nhật một cách có điều kiện.
Thêm vào Python Dictionary bằng phương thức update()
Bạn có thể nối một dictionary hoặc một iterable (một đối tượng lặp, ví dụ: một list các tuple) của các cặp key-value vào một dictionary bằng cách sử dụng phương thức update(). Phương thức update() ghi đè các value của các key hiện có bằng các value mới.
Ví dụ sau minh họa cách tạo một dictionary mới, sử dụng phương thức update() để thêm một cặp key-value mới và một dictionary mới, và in ra từng kết quả:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary'}
print("original dictionary: ", site)
# update the dictionary with the author key-value pair
site.update({'Author':'Sammy Shark'})print("updated with Author: ", site)
# create a new dictionary
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
# update the original dictionary with the new dictionary
site.update(guests)print("updated with new dictionary: ", site)
Đầu ra là:
Output
original dictionary: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary'}
updated with Author: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy Shark'}
updated with new dictionary: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy Shark', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
Đầu ra cho thấy lần cập nhật đầu tiên thêm một cặp key-value mới và lần cập nhật thứ hai thêm các cặp key-value từ dictionary guest vào dictionary site. Lưu ý rằng nếu bản cập nhật của bạn cho một dictionary bao gồm một key hiện có, thì value cũ sẽ bị ghi đè bởi bản cập nhật.
Thêm vào Python Dictionary bằng toán tử Merge |
Bạn có thể sử dụng toán tử dictionary merge |, được biểu thị bằng ký tự gạch đứng (pipe character), để merge (hợp nhất) hai dictionaries và trả về một đối tượng dictionary mới.
Ví dụ sau minh họa cách tạo hai dictionaries và sử dụng toán tử merge để tạo một dictionary mới chứa các cặp key-value từ cả hai:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary', 'Author':'Sammy'}
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
new_site = site | guestsprint("site: ", site)
print("guests: ", guests)
print("new_site: ", new_site)
Kết quả là:
Output
site: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy'}
guests: {'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
new_site: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
Hai dictionaries đã được merge thành một đối tượng dictionary mới chứa các cặp key-value từ cả hai dictionaries.
Nếu một key tồn tại trong cả hai dictionaries, thì value từ dictionary thứ hai, hay right operand (toán hạng bên phải), sẽ là value được chọn. Trong ví dụ mã sau, cả hai dictionaries đều có một key tên là b:
dict1 = {'a':'one', 'b':'two'}
dict2 = {'b':'letter two', 'c':'letter three'}
dict3 = dict1 | dict2print{"dict3: ", dict3}
Đầu ra là:
Output
dict3: {'a': 'one', 'b': 'letter two', 'c': 'letter three'}
Value của key b đã bị ghi đè bởi value từ right operand, dict2.
Thêm vào Python Dictionary bằng toán tử Update |=
Bạn có thể sử dụng toán tử dictionary update |=, được biểu thị bằng ký tự gạch đứng và dấu bằng, để cập nhật một dictionary in-place với dictionary hoặc các value đã cho.
Giống như toán tử merge |, nếu một key tồn tại trong cả hai dictionaries, thì toán tử update |= sẽ lấy value từ right operand.
Ví dụ sau minh họa cách tạo hai dictionaries, sử dụng toán tử update để nối dictionary thứ hai vào dictionary thứ nhất, và sau đó in ra dictionary đã được cập nhật:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary', 'Author':'Sammy'}
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
site |= guestsprint("site: ", site)
Đầu ra là:
Output
site: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
Trong ví dụ trên, bạn không cần tạo một đối tượng dictionary thứ ba, vì toán tử update sửa đổi đối tượng gốc. Đầu ra cho thấy dictionary guests đã được nối vào dictionary site ban đầu.
Kết luận
Trong bài viết này, bạn đã sử dụng các phương pháp khác nhau để thêm và cập nhật một Python dictionary. Bạn có thể tiếp tục học hỏi với nhiều hướng dẫn Python hơn nữa.
Ngoài ra, bạn có thể khám phá module collections, cung cấp các lựa chọn thay thế như defaultdict và Counter cho các thao tác dictionary nâng cao hơn. Để biết thêm thông tin, hãy tham khảo các hướng dẫn về Python Counter và Using the Collections Module in Python.
Các câu hỏi thường gặp (FAQs)
Làm thế nào để tôi thêm các mục vào một dictionary trong Python?
Để thêm một mục vào một dictionary, bạn sử dụng cú pháp:
dictionary[key] = value
Điều này sẽ thêm một cặp key-value mới vào dictionary. Nếu key đã tồn tại, value của nó sẽ được cập nhật.
Ví dụ:
my_dict = {"a": 1}
my_dict["b"] = 2
print(my_dict) # Output: {'a': 1, 'b': 2}
Bạn có thể append (nối) vào một dictionary không?
Bạn không thể sử dụng trực tiếp các phương thức như .append() cho dictionaries vì chúng được sử dụng cho lists. Tuy nhiên, bạn có thể thêm một cặp key-value bằng cách sử dụng dictionary[key] = value. Để append các value vào một list hiện có được lưu trữ trong một dictionary, bạn cần sửa đổi list.
my_dict = {"a": [1, 2]}
my_dict["a"].append(3)
print(my_dict) # Output: {'a': [1, 2, 3]}
Làm thế nào để bạn thêm nhiều mục vào một dictionary trong Python?
Bạn có thể sử dụng phương thức .update() để thêm nhiều cặp key-value từ một dictionary khác hoặc một iterable của các cặp key-value.
my_dict = {"a": 1}
my_dict.update({"b": 2, "c": 3})
print(my_dict) # Output: {'a': 1, 'b': 2, 'c': 3}
Hoặc sử dụng một iterable:
my_dict.update([("d", 4), ("e", 5)])
print(my_dict) # Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
Làm thế nào để thêm vào một dictionary trống trong Python?
Bạn có thể bắt đầu với một dictionary trống {} và thêm các mục bằng cách sử dụng dictionary[key] = value.
my_dict = {}
my_dict["a"] = 1
print(my_dict) # Output: {'a': 1}
Làm thế nào để sửa đổi một dictionary trong Python?
Bạn có thể sửa đổi một dictionary bằng cách cập nhật các cặp key-value hiện có của nó hoặc thêm các cặp mới.
my_dict = {"a": 1, "b": 2}
my_dict["a"] = 10 # Modify existing key
my_dict["c"] = 3 # Add a new key
print(my_dict) # Output: {'a': 10, 'b': 2, 'c': 3}
Làm thế nào để thêm các value vào các key trong một dictionary?
Nếu các value là số, bạn có thể cộng trực tiếp. Nếu các value là lists, bạn có thể append vào chúng.
Ví dụ với số:
my_dict = {"a": 1}
my_dict["a"] += 2
print(my_dict) # Output: {'a': 3}
Ví dụ với lists:
my_dict = {"a": [1]}
my_dict["a"].append(2)
print(my_dict) # Output: {'a': [1, 2]}
Làm thế nào để thêm các mục vào một dictionary trong Python mà không ghi đè?
Trước khi thêm, bạn có thể kiểm tra xem key có tồn tại hay không bằng cách sử dụng:
my_dict = {"a": 1}
if "b" not in my_dict:
my_dict["b"] = 2
print(my_dict) # Output: {'a': 1, 'b': 2}
dict() trong Python là gì?
dict() là một hàm tích hợp sẵn để tạo một dictionary mới. Bạn có thể tạo một dictionary trống hoặc khởi tạo nó với các cặp key-value.
my_dict = dict() # Empty dictionary
my_dict = dict(a=1, b=2) # With key-value pairs
print(my_dict) # Output: {'a': 1, 'b': 2}
Làm thế nào để tính tổng các value trong một Python dictionary?
Bạn có thể sử dụng hàm sum() nếu các value là số.
my_dict = {"a": 10, "b": 20, "c": 30}
total = sum(my_dict.values())
print(total) # Output: 60
Để tìm hiểu thêm về dictionaries trong Python, hãy tham khảo hướng dẫn về Understanding Dictionaries in Python.