Mặc dù danh sách không phải là cấu trúc dữ liệu hiệu quả nhất nếu bạn thực hiện nhiều thao tác xóa từ giữa, nhưng chắc chắn có những cách tốt để hoàn thành nhiệm vụ. Phương pháp remove[]
tích hợp nên là lựa chọn đầu tiên của bạn. Hãy đi qua một số ví dụ
Xóa phần tử trong danh sách Python theo giá trị
primes = [2, 3, 5, 5, 7, 11]
primes.remove[5]
print[primes]
# [2, 3, 5, 7, 11]
primes.remove[5]
# [2, 3, 7, 11]
primes.remove[5]
# careful, this will throw an error
# ValueError: list.remove[x]: x not in list
Nếu bạn muốn xóa các mục một cách an toàn và không chắc liệu chúng có tồn tại trong danh sách hay không, bạn có thể bắt lỗi
try:
primes.remove[5]
except Exception as e:
print["not in list"]
Hoặc, bạn có thể kiểm tra sự tồn tại trước
if 5 in primes:
primes.remove[5]
Xóa một phần tử trong danh sách Python theo chỉ mục
Câu lệnh del
là một từ khóa tích hợp cho phép bạn xóa các mục khỏi danh sách. Ví dụ đơn giản nhất xóa mục tại một chỉ mục nhất định
primes = [2, 3, 5, 5, 7, 11]
# delete the second item
del primes[1]
print[primes]
# [2, 5, 5, 7, 11]
Một lần nữa, bạn cần phải cẩn thận. Nếu chỉ mục không tồn tại, một lỗi sẽ được đưa ra
primes = [2, 3, 5, 5, 7, 11]
# delete the eleventh item
del primes[10]
try:
primes.remove[5]
except Exception as e:
print["not in list"]
0if len[primes] >= 10:
del primes[10]
Nhận một công việc back-end mà không tốn 10 nghìn đô la cho bootcamp
- Tìm hiểu Python, Javascript và Go
- Xây dựng các dự án chuyên nghiệp mà bạn cần để có được công việc đầu tiên
- Dành khoảng 6 tháng [khi làm bán thời gian]
- Giá thấp tới $24/tháng*
- Không mạo hiểm. Hủy bỏ bất cứ lúc nào
Xóa nhiều mục khỏi danh sách python
primes = [2, 3, 5, 5, 7, 11]
# deleting items from 2nd to 4th
del primes[1:4]
print[primes]
# [2, 7, 11]
Xóa mục theo chỉ mục và trả lại
Phương thức
try:
primes.remove[5]
except Exception as e:
print["not in list"]
1 xóa một mục khỏi danh sách theo chỉ mục và trả về mục đóprimes = [2, 3, 5, 7]
# pop the second element
popped = primes.pop[1]
print["popped:", popped]
# 3
print["list:", primes]
# [2, 5, 7]
Nếu bạn không truyền tham số chỉ mục cho
try:
primes.remove[5]
except Exception as e:
print["not in list"]
2, nó sẽ mặc định là try:
primes.remove[5]
except Exception as e:
print["not in list"]
3 và xóa phần tử cuối cùng khỏi danh sách. Cũng giống như các phương pháp khác, nếu bạn truyền vào một số quá lớn, bạn sẽ gặp lỗi sau Xóa mục được chỉ định
Phương pháp remove[]
xóa mục được chỉ định
Thí dụ
Loại bỏ "chuối"
thislist = ["táo", "chuối", "anh đào"]
danh sách này. xóa ["chuối"]
in [danh sách này]
Xóa chỉ mục đã chỉ định
Phương thức pop[]
xóa chỉ mục đã chỉ định
Thí dụ
Xóa mục thứ hai
thislist = ["táo", "chuối", "anh đào"]
danh sách này. bật[1]
in [danh sách này]
Nếu bạn không chỉ định chỉ mục, phương thức pop[]
sẽ xóa mục cuối cùng
Thí dụ
Xóa mục cuối cùng
thislist = ["táo", "chuối", "anh đào"]
danh sách này. nhạc pop[]
in [danh sách này]
Từ khóa del
cũng xóa chỉ mục đã chỉ định
Thí dụ
Xóa mục đầu tiên
thislist = ["táo", "chuối", "anh đào"]
xóa danh sách này[0]
in [danh sách này]
Từ khóa del
cũng có thể xóa hoàn toàn danh sách
Thí dụ
Xóa toàn bộ danh sách
thislist = ["táo", "chuối", "anh đào"]
xóa danh sách này
Xóa danh sách
Phương thức clear[]
làm trống danh sách
Danh sách vẫn còn, nhưng nó không có nội dung
Thí dụ
Xóa nội dung danh sách
thislist = ["táo", "chuối", "anh đào"]
danh sách này. thông thoáng[]
in [danh sách này]
Tôi đang đăng lại câu trả lời của mình vì tôi thấy nó cũng phù hợp ở đây. Nó cho phép loại bỏ nhiều giá trị hoặc chỉ loại bỏ các giá trị trùng lặp của các giá trị này và trả về một danh sách mới hoặc sửa đổi danh sách đã cho tại chỗ
def removed[items, original_list, only_duplicates=False, inplace=False]:
"""By default removes given items from original_list and returns
a new list. Optionally only removes duplicates of `items` or modifies
given list in place.
"""
if not hasattr[items, '__iter__'] or isinstance[items, str]:
items = [items]
if only_duplicates:
result = []
for item in original_list:
if item not in items or item not in result:
result.append[item]
else:
result = [item for item in original_list if item not in items]
if inplace:
original_list[:] = result
else:
return result
Tiện ích mở rộng chuỗi tài liệu
"""
Examples:
---------
>>>li1 = [1, 2, 3, 4, 4, 5, 5]
>>>removed[4, li1]
[1, 2, 3, 5, 5]
>>>removed[[4,5], li1]
[1, 2, 3]
>>>removed[[4,5], li1, only_duplicates=True]
[1, 2, 3, 4, 5]
# remove all duplicates by passing original_list also to `items`.:
>>>removed[li1, li1, only_duplicates=True]
[1, 2, 3, 4, 5]
# inplace:
>>>removed[[4,5], li1, only_duplicates=True, inplace=True]
>>>li1
[1, 2, 3, 4, 5]
>>>li2 =['abc', 'def', 'def', 'ghi', 'ghi']
>>>removed[['def', 'ghi'], li2, only_duplicates=True, inplace=True]
>>>li2
['abc', 'def', 'ghi']
"""
Bạn nên rõ ràng về những gì bạn thực sự muốn làm, sửa đổi danh sách hiện có hoặc tạo một danh sách mới với các mục cụ thể bị thiếu. Điều quan trọng là phải phân biệt điều đó trong trường hợp bạn có tham chiếu thứ hai trỏ đến danh sách hiện có. Nếu bạn có, ví dụ