Từ điển(Dictionary) trong Python là một tập hợp các giá trị dữ liệu không có trật tự, được sử dụng để lưu trữ các giá trị dữ liệu như bản đồ, không giống như các kiểu dữ liệu khác chỉ giữ giá trị duy nhất là phần tử, từ điển giữ cặp key:value. Cặp giá trị key:value được cung cấp trong từ điển để tối ưu chính nó.
Lưu ý – Các key trong từ điển không hỗ trợ tính Đa hình.
Nội dung chính
1. Tạo một từ điển(Dictionary)
Trong Python, một Từ điển có thể được tạo bằng cách đặt chuỗi các phần tử trong dấu ngoặc nhọn {}, được phân tách bằng ‘dấu phẩy’. Từ điển giữ một cặp giá trị, một là Key và phần tử cặp tương ứng khác là của nó Key: value. Các giá trị trong từ điển có thể là bất kỳ kiểu dữ liệu nào và có thể được nhân đôi, trong khi các key không thể lặp lại và phải bất biến.
Lưu ý – các Key của từ điển có phân biệt chữ hoa chữ thường, cùng tên nhưng kiểu chữ khác nhau sẽ được xử lý khác nhau.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating a Dictionary
# with Integer Keys
Dict = {1: 'Cafedev', 2: 'For', 3: 'Cafedev'}
print("\nDictionary with the use of Integer Keys: ")
print(Dict)
# Creating a Dictionary
# with Mixed keys
Dict = {'Name': 'Cafedev', 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
print(Dict)
Kết quả:
Dictionary with the use of Integer Keys:
{1: 'Cafedev', 2: 'For', 3: 'Cafedev'}
Dictionary with the use of Mixed Keys:
{1: [1, 2, 3, 4], 'Name': 'Cafedev'}
Từ điển cũng có thể được tạo bởi hàm tích hợp dict(). Một từ điển rỗng có thể được tạo bằng cách chỉ cần đặt vào trong dấu ngoặc nhọn {}.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating an empty Dictionary
Dict = {}
print("Empty Dictionary: ")
print(Dict)
# Creating a Dictionary
# with dict() method
Dict = dict({1: 'Cafedev', 2: 'For', 3:'Cafedev'})
print("\nDictionary with the use of dict(): ")
print(Dict)
# Creating a Dictionary
# with each item as a Pair
Dict = dict([(1, 'Cafedev'), (2, 'For')])
print("\nDictionary with each item as a pair: ")
print(Dict)
Kết quả:
Empty Dictionary:
{}
Dictionary with the use of dict():
{1: 'Cafedev', 2: 'For', 3: 'Cafedev'}
Dictionary with each item as a pair:
{1: 'Cafedev', 2: 'For'}
Từ điển lồng nhau:
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating a Nested Dictionary
# as shown in the below image
Dict = {1: 'Cafedev', 2: 'For',
3:{'A' : 'Welcome', 'B' : 'To', 'C' : 'Cafedev'}}
print(Dict)
Kết quả:
{1: 'Cafedev', 2: 'For', 3: {'A': 'Welcome', 'B': 'To', 'C': 'Cafedev'}}
2. Thêm các phần tử vào từ điển
Ở từ điển trong Python, việc thêm các phần tử có thể được thực hiện theo nhiều cách. Một giá trị tại một thời điểm có thể được thêm vào Từ điển bằng cách định nghĩa giá trị cùng với key, ví dụ: Dict[Key] = ‘Value’. Cập nhật một giá trị hiện có trong Từ điển có thể được thực hiện bằng cách sử dụng phương thức tích hợp update(). Các giá trị key lồng nhau cũng có thể được thêm vào Từ điển đang có.
Lưu ý- Trong khi thêm một giá trị vào từ điển, nếu giá trị key đó đã tồn tại, thì giá trị sẽ được cập nhật, ngược lại, nếu nó chưa tồn tại, một key mới cùng với giá trị đó sẽ được thêm vào từ điển.
# Creating an empty Dictionary
Dict = {}
print("Empty Dictionary: ")
print(Dict)
# Adding elements one at a time
Dict[0] = 'Cafedev'
Dict[2] = 'For'
Dict[3] = 1
print("\nDictionary after adding 3 elements: ")
print(Dict)
# Adding set of values
# to a single Key
Dict['Value_set'] = 2, 3, 4
print("\nDictionary after adding 3 elements: ")
print(Dict)
# Updating existing Key's Value
Dict[2] = 'Welcome'
print("\nUpdated key value: ")
print(Dict)
# Adding Nested Key value to Dictionary
Dict[5] = {'Nested' :{'1' : 'Life', '2' : 'Cafedev'}}
print("\nAdding a Nested Key: ")
print(Dict)
Kết quả:
Empty Dictionary:
{}
Dictionary after adding 3 elements:
{0: 'Cafedev', 2: 'For', 3: 1}
Dictionary after adding 3 elements:
{0: 'Cafedev', 2: 'For', 3: 1, 'Value_set': (2, 3, 4)}
Updated key value:
{0: 'Cafedev', 2: 'Welcome', 3: 1, 'Value_set': (2, 3, 4)}
Adding a Nested Key:
{0: 'Cafedev', 2: 'Welcome', 3: 1, 5: {'Nested': {'1': 'Life', '2': 'Cafedev'}}, 'Value_set': (2, 3, 4)}
Truy cập các phần tử từ một từ điển
Để truy cập các mục của từ điển, hãy lấy tên key của nó. Có thể sử dụng key bên trong dấu ngoặc vuông.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Python program to demonstrate
# accessing a element from a Dictionary
# Creating a Dictionary
Dict = {1: 'Cafedev', 'name': 'For', 3: 'Cafedev'}
# accessing a element using key
print("Accessing a element using key:")
print(Dict['name'])
# accessing a element using key
print("Accessing a element using key:")
print(Dict[1])
Kết quả:
Accessing a element using key:
For
Accessing a element using key:
Cafedev
Ngoài ra còn có một phương thức được gọi là get() cũng sẽ giúp chúng ta truy cập các phần tử từ một từ điển.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating a Dictionary
Dict = {1: 'Cafedev', 'name': 'For', 3: 'Cafedev'}
# accessing a element using get()
# method
print("Accessing a element using get:")
print(Dict.get(3))
Kết quả:
Accessing a element using get:
Cafedev
Truy cập các phần tử của một từ điển lồng nhau
Để truy cập vào giá trị của bất kỳ key nào trong từ điển lồng nhau, hãy sử dụng cú pháp lập chỉ mục [].
# Creating a Dictionary
Dict = {'Dict1': {1: 'Cafedev'},
'Dict2': {'Name': 'For'}}
# Accessing element using key
print(Dict['Dict1'])
print(Dict['Dict1'][1])
print(Dict['Dict2']['Name'])
Kết quả:
{1: 'Cafedev'}
Cafedev
For
3. Xóa các phần tử khỏi từ điển
Sử dụng từ key del
Ở từ điển trong Python, việc xóa các key có thể được thực hiện bằng cách sử dụng từ key del. Khi sử dụng từ key del, ta có thể xóa các giá trị cụ thể từ một từ điển cũng như toàn bộ từ điển. Các mục trong từ điển lồng nhau cũng có thể bị xóa bằng cách sử dụng từ key del và bằng cách cung cấp key lồng nhau và key cụ thể cần được xóa khỏi từ điển lồng nhau đó.
Lưu ý- từ khóa del Dict sẽ xóa toàn bộ từ điển, do đó nếu chúng ta in sau khi xóa chúng sẽ gây ra lỗi.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Initial Dictionary
Dict = { 5 : 'Welcome', 6 : 'To', 7 : 'Cafedev',
'A' : {1 : 'Cafedev', 2 : 'For', 3 : 'Cafedev'},
'B' : {1 : 'Cafedev', 2 : 'Life'}}
print("Initial Dictionary: ")
print(Dict)
# Deleting a Key value
del Dict[6]
print("\nDeleting a specific key: ")
print(Dict)
# Deleting a Key from
# Nested Dictionary
del Dict['A'][2]
print("\nDeleting a key from Nested Dictionary: ")
print(Dict)
Kết quả:
Initial Dictionary:
{'A': {1: 'Cafedev', 2: 'For', 3: 'Cafedev'}, 'B': {1: 'Cafedev', 2: 'Life'}, 5: 'Welcome', 6: 'To', 7: 'Cafedev'}
Deleting a specific key:
{'A': {1: 'Cafedev', 2: 'For', 3: 'Cafedev'}, 'B': {1: 'Cafedev', 2: 'Life'}, 5: 'Welcome', 7: 'Cafedev'}
Deleting a key from Nested Dictionary:
{'A': {1: 'Cafedev', 3: 'Cafedev'}, 'B': {1: 'Cafedev', 2: 'Life'}, 5: 'Welcome', 7: 'Cafedev'}
Sử dụng phương thức pop()
Phương thức Pop() được sử dụng để trả về và xóa giá trị của key được chỉ định.
# Creating a Dictionary
Dict = {1: 'Cafedev', 'name': 'For', 3: 'Cafedev'}
# Deleting a key
# using pop() method
pop_ele = Dict.pop(1)
print('\nDictionary after deletion: ' + str(Dict))
print('Value associated to poped key is: ' + str(pop_ele)
Kết quả:
Dictionary after deletion: {3: 'Cafedev', 'name': 'For'}
Value associated to poped key is: Cafedev
Sử dụng phương thức popitem()
Popitem() trả về và xóa một cặp phần tử bất kì(key, giá trị)khỏi từ điển.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Creating Dictionary
Dict = {1: 'Cafedev', 'name': 'For', 3: 'Cafedev'}
# Deleting an arbitrary key
# using popitem() function
pop_ele = Dict.popitem()
print("\nDictionary after deletion: " + str(Dict))
print("The arbitrary pair returned is: " + str(pop_ele))
Kết quả:
Dictionary after deletion: {3: 'Cafedev', 'name': 'For'}
The arbitrary pair returned is: (1, 'Cafedev')
Sử dụng phương thức clear()
Chúng ta có thể xóa tất cả các mục từ một từ điển bằng phương thức clear().
# Creating a Dictionary
Dict = {1: 'Cafedev', 'name': 'For', 3: 'Cafedev'}
# Deleting entire Dictionary
Dict.clear()
print("\nDeleting Entire Dictionary: ")
print(Dict)
Kết quả:
Deleting Entire Dictionary:
{}
4. Các phương thức trong từ điển
Phương thức | Mô tả |
copy() | Phương thức copy() trả về một bản sao nông của từ điển. |
clear() | Phương thức clear() xóa tất cả các mục khỏi từ điển. |
pop() | Loại bỏ và trả về một phần tử từ một từ điển có key đã cho. |
popitem() | Loại bỏ cặp key-giá trị tùy ý khỏi từ điển và trả về dưới dạng tuple. |
get() | Đây là một phương pháp thông thường để truy cập một giá trị cho key. |
dictionary_name.values() | Trả về một danh sách tất cả các giá trị có sẵn trong một từ điển nhất định. |
str() | Tạo ra một đại diện chuỗi có thể in của một từ điển. |
update() | Thêm các cặp key-giá trị của từ điển dict2 vào dict |
setdefault() | Đặt dict [key] = default nếu key chưa có trong dict |
key() | Trả về danh sách các key của từ điển |
item() | Trả về danh sách các cặp tuple (key, giá trị) của dict |
has_key() | Trả về true nếu key trong từ điển dict, sai khác |
fromkey() | Tạo một từ điển mới với các key từ seq và các giá trị được đặt thành giá trị. |
type() | Trả về kiểu của biến đã qua. |
cmp() | So sánh các yếu tố của cả hai dict. |
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!