Trong bài viết này, bạn sẽ học cách sử dụng tính năng tích hợp sẵn của Python remove()
phương pháp liệt kê.
Cuối cùng, bạn sẽ biết cách sử dụng remove()
để xóa một mục khỏi danh sách trong Python.
Đây là những gì chúng tôi sẽ đề cập:
- Cú pháp của
remove()
phương pháp - Xóa một phần tử khỏi danh sách bằng cách sử dụng
remove()
remove()
chỉ xóa lần xuất hiện đầu tiên của một mục- Cách loại bỏ tất cả các lần xuất hiện của một mục
Các remove()
Phương pháp – Tổng quan về cú pháp
Các remove()
là một trong những cách bạn có thể xóa các phần tử khỏi danh sách trong Python.
Các remove()
phương thức xóa một mục khỏi danh sách bằng cách giá trị và không phải bởi số chỉ mục của nó.
Cú pháp chung của remove()
phương pháp trông như thế này:
list_name.remove(value)
Hãy chia nhỏ nó ra:
list_name
là tên của danh sách bạn đang làm việc.remove()
là một trong những phương thức danh sách tích hợp sẵn của Python.remove()
mất một đĩa đơn cần thiết tranh luận. Nếu bạn không cung cấp điều đó, bạn sẽ nhận được mộtTypeError
– cụ thể bạn sẽ nhận được mộtTypeError: list.remove() takes exactly one argument (0 given)
lỗi.value
là giá trị cụ thể của mục mà bạn muốn xóa khỏilist_name
.
Các remove()
phương thức không trả về giá trị đã bị xóa mà thay vào đó chỉ trả về None
nghĩa là không có giá trị trả về.
Nếu bạn cần xóa một mục theo số chỉ mục của nó và/hoặc vì lý do nào đó mà bạn muốn trả lại (lưu) giá trị mà bạn đã xóa, hãy sử dụng pop()
phương pháp thay thế.
Cách xóa phần tử khỏi danh sách bằng cách sử dụng remove()
Phương thức trong Python
Để loại bỏ một phần tử khỏi danh sách bằng cách sử dụng remove()
phương thức, chỉ định giá trị của phần tử đó và chuyển nó làm đối số cho phương thức.
remove()
sẽ tìm kiếm danh sách để tìm nó và loại bỏ nó.
#original list
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#print original list
print(programming_languages)
# remove the value 'JavaScript' from the list
programming_languages.remove("JavaScript")
#print updated list
print(programming_languages)
#output
#['JavaScript', 'Python', 'Java', 'C++']
#['Python', 'Java', 'C++']
Nếu bạn chỉ định một giá trị không có trong danh sách, thì bạn sẽ gặp lỗi – cụ thể lỗi sẽ là ValueError
:
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#I want to remove the value 'React'
programming_languages.remove("React")
#print list
print(programming_languages)
#output
# line 5, in <module>
#programming_languages.remove("React")
#ValueError: list.remove(x): x not in list
Để tránh lỗi này xảy ra, trước tiên bạn có thể kiểm tra xem giá trị bạn muốn xóa có nằm trong danh sách ban đầu hay không bằng cách sử dụng in
từ khóa.
Nó sẽ trả về một giá trị Boolean – True
nếu mặt hàng có trong danh sách hoặc False
nếu giá trị không có trong danh sách.
programming_languages = ["JavaScript", "Python", "Java", "C++"]
#check if 'React' is in the 'programming_languages' list
print("React" in programming_languages)
#output
#False
Một cách khác để tránh lỗi này là tạo một điều kiện có nội dung cơ bản là “Nếu giá trị này là một phần của danh sách thì hãy xóa nó. Nếu giá trị này không tồn tại, hãy hiển thị thông báo cho biết giá trị này không có trong danh sách”.
programming_languages = ["JavaScript", "Python", "Java", "C++"]
if "React" in programming_languages:
programming_languages.remove("React")
else:
print("This value does not exist")
#output
#This value does not exist
Bây giờ, thay vì gặp lỗi Python khi bạn đang cố xóa một giá trị nhất định không tồn tại, bạn sẽ nhận được thông báo trả về cho biết mục bạn muốn xóa không có trong danh sách bạn đang làm việc.
Các remove()
Phương pháp loại bỏ sự xuất hiện đầu tiên của một mục trong danh sách
Một điều cần lưu ý khi sử dụng remove()
phương pháp là nó sẽ tìm kiếm và sẽ chỉ loại bỏ đầu tiên trường hợp của một mặt hàng.
Điều này có nghĩa là nếu trong danh sách có nhiều hơn một phiên bản của mục có giá trị mà bạn đã chuyển làm đối số cho phương thức, thì chỉ lần xuất hiện đầu tiên sẽ bị xóa.
Hãy xem ví dụ sau:
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
programming_languages.remove("Python")
print(programming_languages)
#output
#['JavaScript', 'Java', 'Python', 'C++', 'Python']
Trong ví dụ trên, mục có giá trị là Python
xuất hiện ba lần trong danh sách.
Khi nào remove()
đã được sử dụng, chỉ phiên bản phù hợp đầu tiên bị xóa – phiên bản theo sau JavaScript
giá trị và trước Java
giá trị.
Hai lần xuất hiện khác của Python
vẫn còn trong danh sách.
Điều gì sẽ xảy ra khi bạn muốn xóa tất cả các lần xuất hiện của một mục?
sử dụng remove()
một mình không thực hiện được điều đó và bạn có thể không muốn xóa phiên bản đầu tiên của mục bạn đã chỉ định.
Cách xóa tất cả các trường hợp của một mục trong danh sách bằng Python
Một trong những cách để loại bỏ tất cả các lần xuất hiện của một mục trong danh sách là sử dụng khả năng hiểu danh sách.
Khả năng hiểu danh sách tạo danh sách mới từ danh sách hiện có hoặc tạo danh sách được gọi là danh sách con.
Thao tác này sẽ không sửa đổi danh sách ban đầu của bạn mà thay vào đó sẽ tạo một danh sách mới thỏa mãn điều kiện bạn đã đặt.
#original list
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
#sublist created with list comprehension
programming_languages_updated = [value for value in programming_languages if value != "Python"]
#print original list
print(programming_languages)
#print new sublist that doesn't contain 'Python'
print(programming_languages_updated)
#output
#['JavaScript', 'Python', 'Java', 'Python', 'C++', 'Python']
#['JavaScript', 'Java', 'C++']
Trong ví dụ trên, có bản gốc programming_languages
danh sách.
Sau đó, một danh sách mới (hoặc danh sách con) được trả về.
Các mục có trong danh sách phụ phải đáp ứng một điều kiện. Điều kiện là nếu một mục trong danh sách ban đầu có giá trị là Python
nó sẽ không phải là một phần của danh sách phụ.
Bây giờ, nếu bạn không muốn tạo danh sách mới mà thay vào đó muốn sửa đổi danh sách đã có tại chỗsau đó sử dụng phép gán lát cắt kết hợp với khả năng hiểu danh sách.
Với phép gán lát, bạn có thể sửa đổi và thay thế một số phần (hoặc lát) nhất định của danh sách.
Để thay thế toàn bộ danh sách, hãy sử dụng [:]
cú pháp cắt, cùng với khả năng hiểu danh sách.
Việc hiểu danh sách đặt điều kiện là bất kỳ mục nào có giá trị là Python
sẽ không còn là một phần của danh sách.
programming_languages = ["JavaScript", "Python", "Java", "Python", "C++", "Python"]
programming_languages[:] = (value for value in programming_languages if value != "Python")
print(programming_languages)
#output
#['JavaScript', 'Java', 'C++']
Phần kết luận
Và bạn có nó rồi đấy! Bây giờ bạn đã biết cách xóa một mục danh sách trong Python bằng cách sử dụng remove()
phương pháp. Bạn cũng đã thấy một số cách loại bỏ tất cả các lần xuất hiện của một mục trong danh sách bằng Python.
Tôi hy vọng bạn tìm thấy bài viết này hữu ích.
Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem Chứng chỉ Máy tính Khoa học với Python của freeCodeCamp.
Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.
Cảm ơn bạn đã đọc và viết mã vui vẻ 😊!