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.

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ứcMô 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:

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!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!