Hướng dẫn remove list within list python - xóa danh sách trong danh sách python

Tôi muốn xóa danh sách [1,2,3] bên trong danh sách bên ngoài. Tôi đã thử

l = [0, 1, 2]

l.clear()
print(l)
# []
6 nhưng điều đó không hoạt động, danh sách lồng nhau vẫn còn đó.

messy_list = ["a", 2, 3, 1, False, [1, 2, 3]]

# Your code goes below here
messy_list.pop(3)
messy_list.insert(0,1)

for item in messy_list:
    if isinstance(item, str) or isinstance(item, bool):
        messy_list.remove(item)

messy_list.pop(-1)

print(messy_list)

Tôi muốn biết nếu không có cách nào tốt hơn để kiểm tra xem có danh sách bên trong danh sách hay không, sau đó xóa khỏi danh sách bên ngoài, thay vì phải mã hóa nó bằng .pop (-1)

Trong Python, sử dụng các phương thức

l = [0, 1, 2]

l.clear()
print(l)
# []
7
l = [0, 1, 2]

l.clear()
print(l)
# []
8,
l = [0, 1, 2]

l.clear()
print(l)
# []
9 và
l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
0 để xóa các mục (phần tử) khỏi danh sách. Cũng có thể xóa các mục bằng câu lệnh
l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
1 bằng cách chỉ định một vị trí hoặc phạm vi có chỉ mục hoặc lát cắt.

  • Xóa tất cả các mục:
    l = [0, 1, 2]
    
    l.clear()
    print(l)
    # []
    
    8
  • Xóa một mục theo chỉ mục và nhận được giá trị của nó:
    l = [0, 1, 2]
    
    l.clear()
    print(l)
    # []
    
    9
  • Xóa một mục theo giá trị:
    l = [0, 10, 20, 30, 40, 50]
    
    print(l.pop(0))
    # 0
    
    print(l)
    # [10, 20, 30, 40, 50]
    
    print(l.pop(3))
    # 40
    
    print(l)
    # [10, 20, 30, 50]
    
    0
  • Xóa các mục bằng chỉ mục hoặc lát:
    l = [0, 10, 20, 30, 40, 50]
    
    print(l.pop(0))
    # 0
    
    print(l)
    # [10, 20, 30, 40, 50]
    
    print(l.pop(3))
    # 40
    
    print(l)
    # [10, 20, 30, 50]
    
    1
  • Xóa các mục đáp ứng điều kiện: Danh sách toàn diện

Loại bỏ các mặt hàng thỏa mãn điều kiện tương đương với việc trích xuất các mặt hàng không thỏa mãn điều kiện.

  • Đối với mục đích này, toàn bộ danh sách được sử dụng.

Xóa tất cả các mục: l = [0, 1, 2] l.clear() print(l) # [] 8

Xóa một mục theo chỉ mục và nhận được giá trị của nó:

l = [0, 1, 2]

l.clear()
print(l)
# []
9

l = [0, 1, 2]

l.clear()
print(l)
# []

Xóa một mục theo chỉ mục và nhận được giá trị của nó: l = [0, 1, 2] l.clear() print(l) # [] 9

Xem bài viết sau đây về cách thêm một mục vào danh sách.

Thêm một mục vào danh sách trong Python (Phụ lục, mở rộng, chèn)

l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]

Bạn có thể xóa tất cả các mục khỏi danh sách với

l = [0, 1, 2]

l.clear()
print(l)
# []
8.

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]

Bạn có thể xóa mục tại vị trí được chỉ định và nhận giá trị của nó với

l = [0, 1, 2]

l.clear()
print(l)
# []
9.

print(l.pop())
# 50

print(l)
# [10, 20]

Chỉ số ở đầu là

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
0 (lập chỉ mục dựa trên không).

# print(l.pop(100))
# IndexError: pop index out of range

Bạn có thể sử dụng các giá trị âm để chỉ định vị trí từ cuối. Chỉ số ở cuối là

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
1.

  • Nếu đối số bị bỏ qua, mục cuối cùng sẽ bị xóa.

Loại

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
5 được cung cấp trong mô -đun Bộ sưu tập thư viện tiêu chuẩn để loại bỏ mục đầu tiên bằng
print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
6. Ví dụ: nếu bạn muốn coi dữ liệu như một hàng đợi (FIFO), việc sử dụng
print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
5 hiệu quả hơn.

  • Deque với bộ sưu tập.Deque in Python

Xóa một mục theo giá trị: l = [0, 10, 20, 30, 40, 50] print(l.pop(0)) # 0 print(l) # [10, 20, 30, 40, 50] print(l.pop(3)) # 40 print(l) # [10, 20, 30, 50] 0

Bạn có thể xóa mục đầu tiên khỏi danh sách trong đó giá trị của nó bằng với giá trị được chỉ định với

l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
0.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

Nếu danh sách chứa nhiều hơn một khớp với giá trị được chỉ định, chỉ có giá trị đầu tiên bị xóa.

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

Để loại bỏ nhiều mục đáp ứng điều kiện cùng một lúc, hãy sử dụng các toàn bộ danh sách được mô tả dưới đây.

Chỉ định giá trị không tồn tại làm tăng lỗi.

# l.remove('xxx')
# ValueError: list.remove(x): x not in list

Bạn có thể sử dụng

print(l.pop())
# 50

print(l)
# [10, 20]
0 để kiểm tra xem danh sách có chứa mục không.

  • trong toán tử trong Python (cho danh sách, chuỗi, từ điển, v.v.)

Xóa các mục bằng chỉ mục hoặc lát: l = [0, 10, 20, 30, 40, 50] print(l.pop(0)) # 0 print(l) # [10, 20, 30, 40, 50] print(l.pop(3)) # 40 print(l) # [10, 20, 30, 50] 1

l = [0, 1, 2]

l.clear()
print(l)
# []
8,
l = [0, 1, 2]

l.clear()
print(l)
# []
9 và
l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
0 là các phương pháp của
l = [0, 1, 2]

l.clear()
print(l)
# []
7. Bạn cũng có thể xóa các phần tử khỏi danh sách với các câu lệnh
l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
1.

Chỉ định mục sẽ bị xóa bởi chỉ mục. Chỉ số đầu tiên là

print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
0 và phần cuối là
print(l.pop(-2))
# 30

print(l)
# [10, 20, 50]
1.

l = [0, 10, 20, 30, 40, 50]

del l[0]
print(l)
# [10, 20, 30, 40, 50]

del l[3]
print(l)
# [10, 20, 30, 50]

del l[-1]
print(l)
# [10, 20, 30]

del l[-2]
print(l)
# [10, 30]

Bạn có thể xóa nhiều mục bằng lát.

l = [0, 1, 2]

l.clear()
print(l)
# []
0

Cũng có thể xóa tất cả các mục bằng cách chỉ định toàn bộ phạm vi.

l = [0, 1, 2]

l.clear()
print(l)
# []
1

Bạn cũng có thể chỉ định

print(l.pop())
# 50

print(l)
# [10, 20]
9 là
# print(l.pop(100))
# IndexError: pop index out of range
0.

l = [0, 1, 2]

l.clear()
print(l)
# []
2

Xem bài viết sau đây để biết chi tiết về lát cắt.

  • Cách cắt một danh sách, chuỗi, tuple trong Python

Xóa các mục đáp ứng điều kiện: Danh sách toàn diện

Loại bỏ các mặt hàng thỏa mãn điều kiện tương đương với việc trích xuất các mặt hàng không thỏa mãn điều kiện.

Đối với mục đích này, toàn bộ danh sách được sử dụng.

  • Liệt kê sự hiểu biết trong Python

Một ví dụ về việc loại bỏ các mục lẻ hoặc thậm chí (= giữ các vật phẩm chẵn hoặc lẻ) như sau.

# print(l.pop(100))
# IndexError: pop index out of range
1 là toán tử còn lại và
# print(l.pop(100))
# IndexError: pop index out of range
2 là phần còn lại của việc chia
# print(l.pop(100))
# IndexError: pop index out of range
3 cho
# print(l.pop(100))
# IndexError: pop index out of range
4.

Trong danh sách hiểu, một danh sách mới được tạo ra. Không giống như phương thức loại

l = [0, 1, 2]

l.clear()
print(l)
# []
7 hoặc câu lệnh
l = [0, 10, 20, 30, 40, 50]

print(l.pop(0))
# 0

print(l)
# [10, 20, 30, 40, 50]

print(l.pop(3))
# 40

print(l)
# [10, 20, 30, 50]
1 được giới thiệu cho đến nay, danh sách ban đầu không thay đổi.

l = [0, 1, 2]

l.clear()
print(l)
# []
3

Xem bài viết sau đây để biết chi tiết về trích xuất các yếu tố bằng cách sử dụng toàn bộ danh sách.

  • Trích xuất, thay thế, chuyển đổi các yếu tố của một danh sách trong Python

Các ví dụ khác như sau.

l = [0, 1, 2]

l.clear()
print(l)
# []
4

Xem bài viết sau đây để biết ví dụ cho một danh sách các chuỗi.

  • Trích xuất và thay thế các yếu tố đáp ứng các điều kiện của một danh sách các chuỗi trong Python

Nếu bạn muốn loại bỏ các yếu tố trùng lặp, hãy sử dụng

# print(l.pop(100))
# IndexError: pop index out of range
7.

  • Xóa/Trích xuất các yếu tố trùng lặp khỏi danh sách trong Python

l = [0, 1, 2]

l.clear()
print(l)
# []
5