Python - Remove Dictionary Items

Remove Dictionary Items

Việc xóa các mục trong từ điển (dictionary) trong Python đề cập đến việc xóa các cặp khóa-giá trị từ một từ điển hiện có. Từ điển là các cấu trúc dữ liệu có thể thay đổi (mutable) chứa các cặp khóa và giá trị liên quan. Mỗi khóa hoạt động như một định danh duy nhất, ánh xạ đến một giá trị cụ thể trong từ điển.

Việc xóa các mục khỏi từ điển cho phép bạn loại bỏ dữ liệu không cần thiết hoặc không mong muốn khỏi từ điển, từ đó giảm kích thước và chỉnh sửa nội dung của nó.

Chúng ta có thể xóa các mục trong từ điển (dictionary) trong Python bằng nhiều cách khác nhau, chẳng hạn như −

  • using the del keyword
  • using the pop() method
  • using the popitem() method
  • using the clear() method
  • using dictionary comprehension

Remove Dictionary Items Using del Keyword

Từ khóa del trong Python được sử dụng để xóa các đối tượng. Trong ngữ cảnh của từ điển, nó được sử dụng để loại bỏ một mục hoặc một phần của các mục từ dictionary , dựa trên khóa (khóa) đã chỉ định.

Chúng ta có thể xóa các mục trong từ điển bằng cách sử dụng từ khóa del và chỉ định khóa của mục mà chúng ta muốn xóa. Điều này sẽ xóa cặp khóa-giá trị liên kết với khóa đã chỉ định khỏi từ điển.

Example 1

Trong ví dụ sau, chúng ta đang tạo một từ điển có tên là numbers với các khóa là số nguyên và các giá trị chuỗi tương ứng của chúng. Sau đó, xóa mục có khóa '20' bằng cách sử dụng từ khóa del −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before delete operation: \n", numbers)
del numbers[20]
print ("numbers dictionary before delete operation: \n", numbers)

Nó sẽ tạo ra đầu ra sau đây −

numbers dictionary before delete operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary before delete operation: 
 {10: 'Ten', 30: 'Thirty', 40: 'Forty'}

Example 2

Từ khóa del, khi được sử dụng với một đối tượng từ điển, sẽ xóa từ điển khỏi bộ nhớ.

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before delete operation: \n", numbers)
del numbers
print ("numbers dictionary before delete operation: \n", numbers)

Dưới đây là kết quả thu được −

numbers dictionary before delete operation:
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
Traceback (most recent call last):
 File "C:\Users\mlath\examples\main.py", line 5, in <module>
  print ("numbers dictionary before delete operation: \n", numbers)
                                                           ^^^^^^^
NameError: name 'numbers' is not defined

Remove Dictionary Items Using pop() Method

Phương thức pop() trong Python được sử dụng để xóa một khóa cụ thể khỏi từ điển và trả về giá trị tương ứng. Nếu khóa được chỉ định không được tìm thấy, nó có thể tùy chọn trả về một giá trị mặc định thay vì gây ra lỗi KeyError.

Chúng ta có thể xóa các mục trong từ điển bằng cách sử dụng phương thức pop() bằng cách chỉ định khóa của mục mà chúng ta muốn xóa. Phương thức này sẽ trả về giá trị liên kết với khóa đã chỉ định và xóa cặp khóa-giá trị khỏi từ điển.

Example

Trong ví dụ này, chúng ta đang sử dụng phương thức pop() để xóa mục có khóa '20' (lưu giá trị của nó vào biến val) từ từ điển 'numbers'. Sau đó, chúng ta lấy từ điển đã cập nhật và giá trị đã bị xóa.

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before pop operation: \n", numbers)
val = numbers.pop(20)
print ("nubvers dictionary after pop operation: \n", numbers)
print ("Value popped: ", val)

Dưới đây là đầu ra của đoạn mã trên −

numbers dictionary before pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
nubvers dictionary after pop operation: 
 {10: 'Ten', 30: 'Thirty', 40: 'Forty'}
Value popped:  Twenty

Remove Dictionary Items Using popitem() Method

Phương thức popitem() trong Python được sử dụng để loại bỏ và trả về cặp khóa-giá trị cuối cùng từ một từ điển.

Since Python 3.7, dictionaries maintain the insertion order, so popitem() removes the most recently added item. If the dictionary is empty, calling popitem() raises a KeyError.

Chúng ta có thể loại bỏ các mục trong từ điển bằng cách sử dụng phương thức popitem() bằng cách gọi phương thức này trên từ điển, phương thức này sẽ loại bỏ và trả về cặp khóa-giá trị cuối cùng được thêm vào từ điển.

Example

Trong ví dụ dưới đây, chúng ta sử dụng phương thức popitem() để xóa một mục tùy ý khỏi từ điển 'numbers' (lưu cả cặp khóa-giá trị trong val), và lấy từ điển đã cập nhật cùng với cặp khóa-giá trị đã bị xóa −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before pop operation: \n", numbers)
val = numbers.popitem()
print ("numbers dictionary after pop operation: \n", numbers)
print ("Value popped: ", val)

Đầu ra của đoạn mã trên như được hiển thị dưới đây −

numbers dictionary before pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary after pop operation: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty'}
Value popped:  (40, 'Forty')

Remove Dictionary Items Using clear() Method

Câu lệnh clear() method trong Python được sử dụng để xóa tất cả các mục trong một từ điển. Nó sẽ làm rỗng từ điển, để lại độ dài của nó là 0.

Chúng ta có thể xóa các mục trong từ điển bằng cách sử dụng phương thức clear() bằng cách gọi nó trên đối tượng từ điển. Phương thức này sẽ xóa tất cả các cặp khóa-giá trị khỏi từ điển, làm cho nó trở nên trống rỗng.

Example

Trong ví dụ sau, chúng ta sử dụng phương thức clear() để xóa tất cả các mục khỏi từ điển 'numbers' −

numbers = {10:"Ten", 20:"Twenty", 30:"Thirty",40:"Forty"}
print ("numbers dictionary before clear method: \n", numbers)
numbers.clear()
print ("numbers dictionary after clear method: \n", numbers)

Chúng ta nhận được đầu ra như hình dưới đây −

numbers dictionary before clear method: 
 {10: 'Ten', 20: 'Twenty', 30: 'Thirty', 40: 'Forty'}
numbers dictionary after clear method: 
 {}

Remove Dictionary Items Using Dictionary Comprehension

Dictionary comprehension là một cách ngắn gọn để tạo ra các từ điển trong Python. Nó tuân theo cùng một cú pháp như list comprehension nhưng tạo ra các từ điển thay vì danh sách. Với dictionary comprehension, bạn có thể lặp qua các đối tượng có thể lặp (như danh sách, tuple hoặc các từ điển khác), áp dụng một biểu thức cho mỗi mục, và xây dựng các cặp khóa-giá trị dựa trên kết quả của biểu thức đó.

We cannot directly remove dictionary items using dictionary comprehension. Dictionary comprehension is primarily used for creating new dictionaries based on some transformation or filtering of existing data, rather than for removing items from dictionaries.

Nếu bạn cần xóa các mục khỏi một từ điển dựa trên các điều kiện nhất định, bạn thường sẽ sử dụng các phương pháp khác như del, pop() hoặc popitem(). Các phương pháp này cho phép bạn chỉ định rõ ràng các mục nào cần xóa khỏi từ điển.

Example

Trong ví dụ này, chúng ta loại bỏ các mục 'age' và 'major' khỏi từ điển 'student_info' dựa trên một danh sách các khóa đã được xác định trước để loại bỏ.

# Creating a dictionary
student_info = {
    "name": "Alice",
    "age": 21,
    "major": "Computer Science"
}

# Removing items based on conditions
keys_to_remove = ["age", "major"]
for key in keys_to_remove:
    student_info.pop(key, None)

print(student_info)  

Kết quả thu được như hình dưới đây −

{'name': 'Alice'}