Xóa một số phần tử khỏi danh sách Python

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"]
0

if 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]

Tự mình thử »

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]

Tự mình thử »

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ự mình thử »

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ự mình thử »

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

Tự mình thử »

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ự mình thử »


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ụ

Chủ Đề