Chuyển đến nội dung chính

Cách xóa phần tử khỏi list trong Python

Tìm hiểu cách xóa phần tử khỏi list trong Python. Làm quen với các phương thức như remove(), pop() và del để quản lý list.
Đã cập nhật 5 thg 6, 2026  · 7 phút đọc

List xuất hiện thường xuyên trong lập trình Python, và có lý do chính đáng. Chúng giúp nhà phân tích sắp xếp, quản lý và xử lý dữ liệu. Ví dụ, chúng có thể tự động tăng hoặc giảm kích thước khi dữ liệu có độ dài thay đổi. List cũng có thể dễ dàng chuyển đổi sang các kiểu hoặc cấu trúc dữ liệu khác, như tuple hoặc array. Chúng thậm chí còn được dùng làm khối xây dựng trong các thuật toán nâng cao cần tìm kiếm, sắp xếp và lặp qua dữ liệu.

Vì Python là ngôn ngữ lập trình đa năng, có nhiều cách để xóa một phần tử khỏi list trong Python. Trong hướng dẫn này, chúng ta sẽ xem một vài phương pháp chính, bao gồm các hàm dựng sẵn như remove()pop(), list comprehension, và từ khóa del.

Nếu bạn đang hướng tới nghề phân tích dữ liệu hoặc khoa học dữ liệu, tôi thực sự khuyến nghị khóa học Introduction to Python của DataCamp để học các kỹ năng cơ bản của lập trình Python. Python Cheat Sheet cho người mới bắt đầu cũng sẽ là tài liệu tham khảo hữu ích để nắm vững cú pháp của các hàm Python khác nhau. 

3 cách nhanh để xóa phần tử trong list

Bạn có thể dùng bất kỳ phương pháp nào sau đây để xóa một phần tử khỏi list. Trường hợp đầu tiên, ta có thể dùng hàm remove().

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Removes element 5 from the list
my_list.remove(5)
print(my_list)

# Expected output: [1, 2, 3, 4]

Chúng ta cũng có thể dùng hàm pop()

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Removes the last element from the list
my_list.pop()
print(my_list)

# Expected output: [1, 2, 3, 4]

Chúng ta cũng có thể dùng từ khóa del.

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Remove item at index 4
del my_list[4]
print(my_list)

# Expected output: [1, 2, 3, 4]

Trong mỗi trường hợp trên, list mới sẽ là [1, 2, 3, 4] sau khi phần tử bị xóa.

Tìm hiểu về list trong Python

List trong Python là các tập hợp có thứ tự dùng để lưu trữ mọi kiểu dữ liệu. List rất linh hoạt và động, cho phép thực hiện nhiều thao tác xử lý dữ liệu khác nhau. Nhờ tính linh hoạt, list trong Python có các trường hợp sử dụng sau:

  • Lưu trữ dữ liệu: List được dùng để lưu tập hợp các mục, như chuỗi, số và đối tượng.
  • Xử lý dữ liệu: List có thể dùng cho nhiều tác vụ xử lý và biến đổi dữ liệu, bao gồm thêm, xóa hoặc sửa phần tử. 
  • Lặp: List được dùng trong vòng lặp để truy cập và xử lý tuần tự từng phần tử.

Cũng cần biết rằng list trong Python là kiểu mutable (có thể thay đổi), cho phép sửa đổi ngay cả sau khi tạo. Do đó, bạn có thể thêm, xóa hoặc chỉnh sửa các phần tử trong list theo nhu cầu.

Chi tiết các kỹ thuật xóa phần tử khỏi list trong Python

Python có nhiều phương pháp để xóa phần tử khỏi list. Các kỹ thuật này gồm phương thức dựng sẵn, từ khóa và list comprehension.

Dùng hàm remove()

Hàm remove() là phương thức dựng sẵn của Python để xóa một phần tử khỏi list. Cú pháp của hàm remove()list.remove(item). Dưới đây là ví dụ cơ bản khi dùng remove(). Hàm sẽ xóa phần tử có giá trị 3 khỏi list.

Hàm remove() chỉ xóa lần xuất hiện đầu tiên của một phần tử trong list nếu có phần tử trùng lặp. Trong ví dụ sau, remove() chỉ xóa lần xuất hiện đầu tiên của 3 khỏi list.

# Define a list with some elements
my_list = [1, 2, 3, 4, 3]

# Use the remove() method to delete 3 from the list
# The remove() method removes the first occurrence of the specified value
my_list.remove(3)

# Print the list after removing 3
print(my_list)

# Expected output: [1, 2, 4, 3]

Hàm remove() sẽ trả về lỗi ValueError nếu phần tử không có trong list. Do đó, cần thêm ngoại lệ để xử lý các tình huống như vậy. Đoạn mã dưới đây minh họa cách bắt lỗi cho các phần tử không nằm trong list.

# Initialize a list with color strings
colors = ["red", "green", "blue"]

# Try to remove the color "yellow" from the list
try:
    colors.remove("yellow")
# Catch the ValueError exception if "yellow" is not found in the list
except ValueError as e:
    print(e) 

# Expected output: list.remove(x): x not in list

Dùng hàm pop()

Hàm pop() xóa một phần tử khỏi list theo chỉ số. Cú pháp của pop() là list.pop(index).

Ví dụ dưới đây cho thấy cách dùng pop() để xóa một phần tử cụ thể khỏi list bằng cách chỉ định chỉ số. Lưu ý bạn có thể lưu phần tử đã xóa dưới dạng một biến mới và trả về nó.

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Remove and return the element at index 2 (third element) from the list
removed_item = my_list.pop(2)

# Print the updated list after removing the element
print(my_list)
print(removed_item)

# Expected output:
# [1, 2, 4, 5]
# 3

Nếu bạn không chỉ định chỉ số của phần tử cần xóa khỏi list, pop() sẽ mặc định xóa phần tử cuối cùng trong list.

Nếu bạn muốn xóa phần tử đầu tiên trong list trong Python, bạn sẽ chỉ định chỉ số là 0 khi dùng pop().

# Initialize a list with string elements from 'a' to 'd'
my_list = ["a", "b", "c", "d"]

# Remove and return the element at index 0 (the first element) from the list
removed_item = my_list.pop(0)

# Print the updated list after removing the element
print(my_list)
print(removed_item)

# Expected output:
# ['b', 'c', 'd']
# a

Tương tự, nếu bạn muốn xóa phần tử cuối cùng trong list, bạn sẽ chỉ định chỉ số cuối là -1 khi dùng pop().

# Initialize a list with string elements from 'a' to 'd'
my_list = ["a", "b", "c", "d"]

# Remove and return the element at index -1 (the last element) from the list
removed_item = my_list.pop(-1)

# Print the updated list after removing the last element
print(my_list)
print(removed_item)

# Expected output:
# ['a', 'b', 'c']
# d

Nếu phần tử nằm ngoài phạm vi của list, pop() sẽ phát sinh IndexError. Để xử lý chỉ số vượt phạm vi, bạn nên dùng khối try-except.

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Attempt to remove and return the element at index 10
# This will raise an IndexError because index 10 is out of range for the list
try:
    removed_item = my_list.pop(10)
# Catch the IndexError exception if the index is out of range
except IndexError as e:
    print(e) 

# Expected output: pop index out of range

Xem hướng dẫn mới nhất của chúng tôi về Cách dùng phương thức pop() trong Python để tìm hiểu thêm về việc xóa phần tử khỏi list bằng phương pháp này.

Dùng từ khóa del

Từ khóa del hữu ích để xóa phần tử hoặc lát cắt (slice) khỏi list trong Python. Cú pháp để xóa một phần tử đơn là del list[index].

Ví dụ dưới đây cho thấy cách xóa một phần tử đơn khỏi list bằng từ khóa del.

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Remove item at index 2
del my_list[2]
print(my_list)

# Expected output: [1, 2, 4, 5]

Tương tự, từ khóa del cung cấp chức năng xóa một lát cắt các phần tử khỏi list. Cú pháp để xóa nhiều phần tử là del list[start:end], trong đó:

  • start chỉ vị trí bắt đầu của chỉ số cắt.

  • end chỉ vị trí kết thúc của chỉ số cắt.

Ví dụ dưới đây minh họa kỹ thuật cắt để xóa nhiều phần tử khỏi list bằng từ khóa del.

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Delete the elements from index 1 to index 2 (elements 2 and 3) from the list
# This modifies the list to [1, 4, 5]
del my_list[1:3]
print(my_list) 

# Expected output: [1, 4, 5]

Từ khóa del cũng xóa nhiều phần tử khỏi list bằng phương thức step. Cú pháp của phương thức step là del list[start:end:step], trong đó:

  • start chỉ vị trí bắt đầu của chỉ số cắt.

  • end chỉ vị trí kết thúc của chỉ số cắt.

  • step cho biết khoảng bước giữa các phần cắt (mặc định là 1).

Ví dụ dưới đây cho thấy cách xóa các phần tử khỏi list bằng phương thức step.

# Initialize a list with integers from 1 to 8
my_list = [1, 2, 3, 4, 5, 6, 7, 8]

# Delete elements from the list using slicing with a step of 2
del my_list[::2]
print(my_list)

# Expected output: [2, 4, 6, 8]

Ưu điểm của việc dùng từ khóa del để xóa phần tử khỏi list bao gồm:

  • Hiệu quả: Từ khóa del tiết kiệm bộ nhớ bằng cách cho phép bạn xóa phần tử tại chỗ, cải thiện hiệu năng.

  • Đa dụng: Với phương thức step, del hữu ích để xóa phần tử đơn, các lát cắt phần tử, và nhiều phần tử khỏi list.

Tuy nhiên, rủi ro khi dùng del để xóa phần tử khỏi list bao gồm lỗi chỉ số, đặc biệt khi phần tử nằm ngoài phạm vi. Do đó, quan trọng là dùng khối try-except để bắt IndexError.

# Initialize a list with integers 1, 2, and 3
my_list = [1, 2, 3]

# Attempt to delete the element at index 5
# This will raise an IndexError because index 5 is out of range for the list
try:
    del my_list[5]
# Catch the IndexError exception if the index is out of range
except IndexError as e:
    print(e) 

# Expected output: list assignment index out of range

Khi dùng từ khóa del, bạn nên cẩn thận khi chỉ định lát cắt để tránh xóa nhầm, vốn có thể khó gỡ lỗi.

Dùng list comprehension

Ở phần cuối, chúng ta xét đến list comprehension. List comprehension có thể dùng để tạo list mới từ list hiện có, loại trừ một số phần tử. Kỹ thuật này phù hợp nhất khi xóa phần tử khỏi list dựa trên các điều kiện cụ thể. 

# Initialize a list with integers from 1 to 5
my_list = [1, 2, 3, 4, 5]

# Create a new list that includes all items from my_list except for the value 3
new_list = [item for item in my_list if item != 3]
print(new_list)

# Expected output: [1, 2, 4, 5]

Tương tự, list comprehension có thể dùng để xóa phần tử dựa trên điều kiện. Ví dụ dưới đây cho thấy cách dùng list comprehension để loại bỏ các số chẵn khỏi list gốc.

# Initialize a list of integers from 1 to 10
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Create a new list containing only the odd numbers from the original list
odd_numbers = [num for num in numbers if num % 2 != 0]
print(odd_numbers)

# Expected output: [1, 3, 5, 7, 9]

Dùng list comprehension mang lại sự linh hoạt khi xử lý các tình huống phức tạp, như chuyển đổi dữ liệu sang định dạng mới hoặc tạo list từ các cấu trúc dữ liệu hiện có. 

Ví dụ dưới đây cho thấy cách dùng list comprehension để chuyển chuỗi sang chữ hoa và lọc các mục cụ thể.

# Initialize a list of fruit names
words = ["apple", "banana", "cherry", "avocado", "grape"]

# Create a new list containing the uppercase versions of words that start with the letter 'a'
a_words_upper = [word.upper() for word in words if word.startswith("a")]
print(a_words_upper)

# Expected output: ['APPLE', 'AVOCADO']

List comprehension cũng có thể dùng để làm phẳng và thực hiện các thao tác khác trong các list comprehension lồng nhau. Trong ví dụ dưới đây, list comprehension được dùng để làm phẳng list và loại bỏ các số lẻ.

# Initialize a list containing sublists of integers
list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# Create a flat list of even numbers by iterating through each sublist
# and checking if each number is even
flat_even_numbers = [num for sublist in list_of_lists for num in sublist if num % 2 == 0]
print(flat_even_numbers) 

# Expected output: [2, 4, 6, 8]

Bảng so sánh

Kỹ thuật Trường hợp sử dụng Khi hữu ích
remove() Xóa phần tử cụ thể khỏi list Khi xóa phần tử khỏi list và xử lý phần tử trùng lặp
pop() Xóa và trả về phần tử theo chỉ số chỉ định Khi bạn muốn trả về phần tử đã bị xóa khỏi list
del Xóa phần tử hoặc lát cắt phần tử khỏi list Khi xóa nhiều phần tử hoặc xóa các phần trong list
List comprehension Tạo list mới dựa trên điều kiện của list hiện có Cho các thao tác list phức tạp, bao gồm lọc

Nếu bạn muốn hiểu rõ hơn về thao tác với list trong phân tích dữ liệu, hãy xem lộ trình nghề nghiệp Data Analyst with Python để phát triển kỹ năng phân tích của bạn.

Xử lý nhiều lần xuất hiện và các điều kiện

Khi làm việc với list trong Python, bạn có thể gặp tình huống cần xóa nhiều lần xuất hiện của phần tử khỏi list. Trong những trường hợp như vậy, bạn sẽ cần một vòng lặp để lặp và xóa các phần tử.

Dùng vòng lặp và remove()

Ví dụ sau cho thấy cách dùng vòng lặp và hàm remove() để xóa nhiều lần xuất hiện của một phần tử khỏi list.

# Initialize a list of integers
my_list = [1, 2, 3, 2, 4, 2, 5]

# Item to remove
item_to_remove = 2

# Loop to remove all occurrences
while item_to_remove in my_list:
    my_list.remove(item_to_remove)
print(my_list)

# Expected output: [1, 3, 4, 5]

Dùng vòng lặp và list comprehension

Bạn cũng có thể dùng vòng lặp trong list comprehension để xóa nhiều lần xuất hiện của một phần tử khỏi list.

# Initialize a list of integers
my_list = [1, 2, 3, 2, 4, 2, 5]

# Item to remove
item_to_remove = 2

# List comprehension to remove all occurrences
new_list = [item for item in my_list if item != item_to_remove]
print(new_list)

# Expected output: [1, 3, 4, 5]

Kết luận

Việc hiểu khi nào và cách áp dụng các phương pháp thao tác list khác nhau trong nhiệm vụ phân tích của bạn là điều thiết yếu. Đồng thời, hãy đảm bảo bạn biết cách bắt lỗi, xử lý các trường hợp rìa, và dùng các phương pháp phức tạp trong thao tác list. Tôi khuyến khích bạn thử nghiệm các phương pháp đã thảo luận ở trên trong quá trình luyện tập để tìm ra cách phù hợp nhất cho từng phân tích khác nhau.

Nếu bạn muốn học thêm về Python cho phân tích dữ liệu, hãy thử lộ trình kỹ năng Python Fundamentals, trong đó có hướng dẫn toàn diện về thao tác và biến đổi dữ liệu. Cuối cùng, lộ trình kỹ năng Python Programming và lộ trình nghề nghiệp Python Developer của DataCamp sẽ cung cấp cho bạn kỹ năng chuyên sâu để mở ra chương mới trong sự nghiệp.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Biên tập viên kỹ thuật về Khoa học dữ liệu với kinh nghiệm thực tế trong phân tích dữ liệu, trí tuệ doanh nghiệp và khoa học dữ liệu. Tôi viết nội dung thực tiễn, tập trung vào ngành về SQL, Python, Power BI, Databricks và kỹ thuật dữ liệu, dựa trên công việc phân tích trong thế giới thực. Bài viết của tôi kết nối chiều sâu kỹ thuật với tác động kinh doanh, giúp các chuyên gia chuyển đổi dữ liệu thành những quyết định vững chắc.

Câu hỏi thường gặp

Làm sao để xóa một phần tử khỏi list?

Hàm dựng sẵn remove() hữu ích để xóa lần xuất hiện đầu tiên của một phần tử trong list.

Bạn xử lý phần tử trùng lặp trong list như thế nào?

Bạn có thể xóa phần tử trùng lặp trong list bằng vòng lặp với hàm remove() hoặc vòng lặp trong list comprehension.

Có thể xóa phần tử trong khi đang lặp qua list không?

Bạn có thể dùng list comprehension để xóa phần tử khỏi list trong khi đang lặp qua nó.

Sự khác nhau giữa hàm remove() và pop() là gì?

Hàm remove() xóa một phần tử khỏi list và trả về list mới, trong khi hàm pop() xóa một phần tử khỏi list và trả về list mới kèm phần tử đã xóa.

Chủ đề

Học Python với DataCamp

Courses

Nhập môn Python

4 giờ
6.9M
Nắm vững phân tích dữ liệu với Python chỉ trong 4 giờ. Khóa học online này giúp bạn làm quen với giao diện Python và các thư viện phổ biến.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow