Loại bỏ phần tử khỏi một Python LIST [xóa, bật, xóa, xóa]

⚡ Tóm tắt thông minh

Loại bỏ các phần tử khỏi Python Lớp `list` dựa vào ba phương thức tích hợp sẵn là `remove()`, `pop()` và `clear()`, cộng thêm từ khóa `del`, mỗi phương thức nhắm mục tiêu vào một mục theo giá trị, theo chỉ mục hoặc xóa toàn bộ danh sách tại chỗ.

  • 🔘 Phương thức remove(): Phương thức remove() xóa phần tử đầu tiên khớp với một giá trị nhất định và báo lỗi ValueError khi giá trị đó không tồn tại.
  • ☑️ Phương thức pop(): Phương thức pop() xóa một phần tử tại vị trí được chỉ định và trả về phần tử đó, mặc định là phần tử cuối cùng nếu không có chỉ số nào được truyền vào.
  • xóa từ khóa: Từ khóa `del` xóa một mục hoặc toàn bộ một phần tử theo chỉ mục, và cũng có thể xóa biến danh sách.
  • 🧪 Phương thức clear(): Phương thức `clear()` xóa toàn bộ danh sách tại chỗ, để lại một danh sách hiện có nhưng có độ dài bằng không.
  • 🛠️ Giá trị so với chỉ số: Sử dụng remove() khi biết giá trị, và pop() hoặc del khi biết vị trí.
  • 🤖 Quy trình làm việc của AI: Quá trình làm sạch dữ liệu trong học máy loại bỏ các mẫu không mong muốn khỏi danh sách bằng cách sử dụng các biểu thức hiểu trước khi huấn luyện mô hình.

Xóa phần tử khỏi Python Danh sách

Python Kiểu dữ liệu danh sách giúp bạn lưu trữ các mục có kiểu dữ liệu khác nhau theo thứ tự. Dữ liệu được viết bên trong dấu ngoặc vuông ([]), và các giá trị được phân cách bằng dấu phẩy (,).

In Python, có nhiều phương pháp có sẵn trên kiểu dữ liệu danh sách giúp bạn xóa một phần tử khỏi danh sách nhất định. Các phương pháp được xóa(), bật()thông thoáng().

Bên cạnh các phương pháp liệt kê, bạn cũng có thể sử dụng một các từ khóa để xóa các mục khỏi danh sách.

Ví dụ về danh sách

my_list = ['Guru', 50, 11.50, 'Siya', 50, ['A', 'B', 'C']]

Chỉ số bắt đầu từ 0. Trong danh sách my_list, ở chỉ số thứ 0 ta có chuỗi 'Guru'.

  • Tại chỉ số 1, bạn sẽ nhận được số 50, đây là một số nguyên.
  • Tại chỉ số: 2 bạn sẽ nhận được số nổi 11.50
  • Tại chỉ số:3, có một chuỗi 'Siya.'
  • Tại chỉ số:4, bạn sẽ thấy số 50 bị trùng lặp.
  • Tại chỉ số: 5, bạn sẽ nhận được danh sách có các giá trị A, B và C.

Python phương thức remove ()

Phương thức `remove()` là một phương thức tích hợp sẵn có trong danh sách. Nó giúp xóa phần tử đầu tiên khớp với danh sách.

Cú pháp:

list.remove(element)

Phần tử mà bạn muốn xóa khỏi danh sách.

Trở lại giá trị

Không có giá trị trả về cho phương pháp này.

Mẹo sử dụng phương thức remove()

Sau đây là những điểm quan trọng cần nhớ khi sử dụng phương thức remove():

  • Khi danh sách có các phần tử trùng lặp, phần tử đầu tiên khớp với phần tử đã cho sẽ bị xóa khỏi danh sách.
  • Nếu phần tử đã cho không có trong danh sách, nó sẽ đưa ra lỗi cho biết phần tử đó không có trong danh sách.
  • Phương thức remove() không trả về bất kỳ giá trị nào.
  • Phương thức remove() nhận giá trị làm đối số, vì vậy giá trị phải được truyền vào với kiểu dữ liệu chính xác.

Ví dụ: Sử dụng phương thức remove() để xóa một phần tử khỏi danh sách.

Đây là một danh sách mẫu mà tôi có:

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

Danh sách này có các phần tử thuộc kiểu dữ liệu chuỗi và số. Danh sách có các phần tử trùng lặp, ví dụ như số 12 và chuỗi "Riya".

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']
my_list.remove(12) # it will remove the element 12 at the start.
print(my_list)
my_list.remove('Riya') # will remove the first Riya from the list
print(my_list)
my_list.remove(100)  #will throw an error
print(my_list)

Đầu ra:

['Siya', 'Tiya', 14, 'Riya', 12, 'Riya']
['Siya', 'Tiya', 14, 12, 'Riya']
Traceback (most recent calllast):
File "display.py", line 9, in <module>
    my_list.remove(100)
ValueError: list.remove(x): x not in the list

Python phương thức pop()

Phương thức pop() xóa một phần tử khỏi danh sách dựa trên chỉ mục đã cho.

cú pháp

list.pop(index)

chỉ mục: phương thức pop() chỉ có một đối số được gọi là chỉ mục.

  • Để xóa một phần tử khỏi danh sách, bạn cần truyền chỉ số của phần tử đó. Chỉ số bắt đầu từ 0. Để lấy phần tử đầu tiên trong danh sách, hãy truyền chỉ số là 0. Để xóa phần tử cuối cùng, bạn có thể truyền chỉ số là -1.
  • Đối số chỉ mục là tùy chọn. Nếu không được thông qua, giá trị mặc định được coi là -1 và phần tử cuối cùng trong danh sách sẽ được trả về.
  • Nếu chỉ mục đã cho không xuất hiện hoặc nằm ngoài phạm vi, phương thức pop() sẽ đưa ra lỗi cho biết IndexError: chỉ mục pop.

Giá trị trả lại:

Phương thức pop() sẽ trả về phần tử bị loại bỏ dựa trên chỉ mục đã cho. Danh sách cuối cùng cũng được cập nhật và sẽ không có phần tử này.

Ví dụ: Sử dụng phương thức pop() để xóa một phần tử khỏi danh sách

Danh sách chúng ta sẽ sử dụng trong ví dụ là my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya'].

Hãy thử xóa một phần tử bằng phương thức pop() dựa trên những điều sau:

  • Bằng cách đưa ra chỉ số
  • Không có chỉ mục
  • Vượt qua chỉ số nằm ngoài phạm vi.

Ở đây, chúng tôi đang loại bỏ Tiya từ danh sách. Chỉ số bắt đầu từ 0, vì vậy chỉ số cho Tiya là 2.

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

#By passing index as 2 to remove Tiya
name = my_list.pop(2)
print(name)
print(my_list)

#pop() method without index – returns the last element
item = my_list.pop()
print(item)
print(my_list)

#passing index out of range
item = my_list.pop(15)
print(item)
print(my_list)

Đầu ra:

Tiya
[12, 'Siya', 14, 'Riya', 12, 'Riya']
Riya
[12, 'Siya', 14, 'Riya', 12]
Traceback (most recent calllast):
File "display.py", line 14, in <module>
item = my_list.pop(15)
IndexError: popindex out of range

Python phương thức clear()

Phương thức clear() sẽ loại bỏ tất cả các phần tử có trong danh sách.

Cú pháp:

list.clear()

Tham số:

Không có tham số.

Giá trị trả lại:

Không có giá trị trả về. Danh sách được làm trống bằng phương thức clear().

Ví dụ: Sử dụng phương thức clear() để xóa tất cả các phần tử khỏi danh sách.

Phương thức clear() sẽ làm trống danh sách đã cho. Chúng ta hãy xem cách hoạt động của clear() trong ví dụ dưới đây:

my_list = [12, 'Siya', 'Tiya', 14, 'Riya', 12, 'Riya']

#Using clear() method
element = my_list.clear()
print(element)
print(my_list)

Đầu ra:

None
[]

Sử dụng từ khóa del

Để xóa một phần tử khỏi danh sách, bạn có thể sử dụng các từ khóa theo sau là một danh sách. Bạn phải chuyển chỉ mục của phần tử vào danh sách. Chỉ số bắt đầu từ 0.

Cú pháp:

del list[index]

Bạn cũng có thể cắt một loạt phần tử từ danh sách bằng cách sử dụng các Từ khóa. Chỉ số bắt đầu/kết thúc của danh sách có thể được truyền cho từ khóa del, và các phần tử nằm trong phạm vi đó sẽ bị xóa. Cú pháp như sau:

Cú pháp:

del list[start:stop]

Dưới đây là một ví dụ minh họa cách xóa phần tử đầu tiên, phần tử cuối cùng và nhiều phần tử khỏi danh sách bằng cách sử dụng các.

my_list = list(range(15))
print("The Original list is ", my_list)

#To remove the firstelement
del my_list[0]
print("After removing first element", my_list)

#To remove last element
del my_list[-1]
print("After removing last element", my_list)

#To remove element for given index : for example index:5
del my_list[5]
print("After removing element from index:5", my_list)

#To remove last 2 elements from the list
del my_list[-2]
print("After removing last 2 elements", my_list)

#To remove multiple elements
delmy_list[1:5]
print("After removing multiple elements from start:stop index (1:5)", my_list)

#To remove multiple elements
del my_list[4:]
print("To remove elements from index 4 till the end (4:)", my_list)

Đầu ra:

The Originallist is  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
After removing first element [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
After removing last element [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
After removing element from index:5 [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13]
After removing last 2 elements [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13]
After removing multiple elements from start:stop index (1:5) [1, 7, 8, 9, 10, 11, 13]
To remove elements from index 4 till the end (4:) [1, 7, 8, 9]

Làm cách nào để xóa phần tử đầu tiên khỏi danh sách?

Bạn có thể sử dụng các phương thức danh sách như xóa(), bật() Để xóa phần tử đầu tiên khỏi danh sách. Trong trường hợp phương thức `remove()`, bạn sẽ phải truyền phần tử đầu tiên cần xóa, còn đối với `pop()` thì truyền chỉ số, tức là 0.

Bạn cũng có thể sử dụng các từ khóa để loại bỏ phần tử đầu tiên khỏi danh sách.

Ví dụ dưới đây minh họa cách xóa phần tử đầu tiên khỏi danh sách bằng cách sử dụng các phương thức remove(), pop() và del.

my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("The Originallist is ", my_list1)
#Using remove() to remove first element
my_list1.remove('A')
print("Using remove(), the final list is ", my_list1)

my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("The Originallist is ", my_list1)
#Using pop() to remove the first element
element = my_list1.pop(0)
print("The first element removed from my_list1 is ", element)
print("Using pop(), the final list is ", my_list1)

#Using del to remove the first element
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
del my_list2[0]
print("Using del, the final list is ", my_list2)

Đầu ra:

The Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using remove(), the final list is  ['B', 'C', 'D', 'E', 'F']
The Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
The first element removed from my_list1 is  A
Using pop(), the final list is  ['B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['B', 'C', 'D', 'E', 'F']

Làm cách nào để xóa nhiều thành phần khỏi danh sách trong Python?

Các phương thức `remove()` và `pop()` của danh sách dùng để xóa một phần tử duy nhất. Để xóa nhiều phần tử, hãy sử dụng các phương thức khác. các từ khóa.

Từ danh sách ['A', 'B', 'C', 'D', 'E', 'F'], chúng ta muốn loại bỏ các phần tử B, C và D. Ví dụ dưới đây minh họa cách sử dụng phương pháp này. các từ khóa để loại bỏ các phần tử.

#Using del to remove the multiple elements from list
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list2)
del my_list2[1:4]
print("Using del, the final list is ", my_list2)

Đầu ra:

Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['A', 'E', 'F']

Làm cách nào để xóa một phần tử khỏi danh sách bằng cách sử dụng chỉ mục trong Python?

Để xóa một phần tử dựa trên chỉ mục, bạn có thể sử dụng phương thức pop() của danh sách. Ngay cả khi sử dụng... các từ khóa sẽ giúp bạn loại bỏ phần tử cho một chỉ mục nhất định.

#Using del to remove the multiple elements from list
my_list1 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list1)
element = my_list1.pop(2)
print("Element removed for index: 2 is ", element)
print("Using pop, the final list is ", my_list1)

#Using del to remove the multiple elements from list
my_list2 = ['A', 'B', 'C', 'D', 'E', 'F']
print("Originallist is ", my_list2)
del my_list2[2]
print("Using del, the final list is ", my_list2)

Đầu ra:

Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Element removed for index: 2 is  C
Using pop, the final list is  ['A', 'B', 'D', 'E', 'F']
Originallist is  ['A', 'B', 'C', 'D', 'E', 'F']
Using del, the final list is  ['A', 'B', 'D', 'E', 'F']

Câu Hỏi Thường Gặp

Phương thức `remove()` xóa phần tử đầu tiên khớp với một giá trị, `pop()` xóa một phần tử theo chỉ mục và trả về phần tử đó, còn `del` xóa một phần tử hoặc một mảng theo chỉ mục mà không trả về giá trị nào. Hãy chọn phương thức này dựa trên việc bạn biết giá trị hay vị trí của phần tử cần xóa.

Phương thức `remove()` chỉ xóa phần tử khớp đầu tiên, vì vậy hãy sử dụng cú pháp tạo danh sách như sau: `[x for x in my_list if x != value]`. Thao tác này sẽ xây dựng lại danh sách mà không có phần tử nào khớp và giữ nguyên thứ tự của danh sách.

Việc sửa đổi danh sách trong khi lặp tiến sẽ bỏ qua các phần tử. Hãy lặp qua một bản sao, lặp ngược lại hoặc xây dựng một danh sách mới bằng cách sử dụng biểu thức tạo danh sách (comprehensive). Phương pháp sử dụng biểu thức tạo danh sách là dễ đọc nhất và hoàn toàn tránh được các lỗi thay đổi chỉ mục.

clear() xóa trống danh sách tại chỗ trong khi vẫn giữ nguyênping Biến này và bất kỳ tham chiếu nào trỏ đến cùng một danh sách hiện đã trống. Lệnh `del my_list` xóa hoàn toàn biến này, vì vậy việc tham chiếu đến nó sau đó sẽ gây ra lỗi `NameError`.

Các phương thức `remove()`, `pop()`, `clear()` và `del` đều thay đổi danh sách tại chỗ. Chỉ có `pop()` trả về phần tử đã bị xóa; các phương thức khác trả về `None` hoặc không trả về gì. Thay vào đó, `list comprehension` xây dựng một danh sách mới riêng biệt và giữ nguyên danh sách ban đầu.

Việc gọi hàm remove() nhiều lần rất chậm vì mỗi lần gọi đều quét lại danh sách. Việc xây dựng lại bằng một biểu thức tạo danh sách hoặc hàm filter() duy nhất sẽ chạy trong một lần và nhanh hơn nhiều đối với các danh sách lớn khi xóa nhiều giá trị.

Việc chuẩn bị dữ liệu cho máy học thường loại bỏ các mẫu không mong muốn, các giá trị ngoại lệ hoặc nhãn không hợp lệ khỏi danh sách trước khi chuyển đổi chúng thành mảng. Việc loại bỏ sạch sẽ bằng cách sử dụng comprehensions hoặc pandas giúp giữ cho dữ liệu huấn luyện nhất quán và ngăn ngừa kết quả mô hình bị sai lệch.

Đúng vậy. GitHub Copilot và các trợ lý AI tự động tạo ra mã dựa trên remove(), pop(), del và comprehension từ một bình luận thông thường, đề xuất phương án an toàn nhất cho trường hợp của bạn và tái cấu trúc các vòng lặp, mặc dù bạn vẫn nên kiểm tra các trường hợp ngoại lệ như giá trị bị thiếu.

Tóm tắt bài viết này với: