Xóa phần tử trong list python (del, pop, remove, clear) | Laptrinhcanban.com

Xóa phần tử trong list python (del, pop, remove, clear)

Hướng dẫn tất cả các cách xóa phần tử trong list python. Bạn sẽ học được tất cả cách xóa phần tử trong list python như xóa phần tử trong list theo index, xóa phần tử giống với giá trị chỉ định, xóa phần tử trong list python tại một phạm vi , hay là xóa toàn bộ phần tử trong list, thông qua các phương pháp sử dụng lệnh del, phương thức pop(), list remove trong pythonphương thức clear() sau bài học này.

Chúng ta có 5 phương pháp để xóa phần tử trong list python như sau:

  • phương thức pop(): lấy ra và xóa phần tử của list theo index
  • list remove trong python: xóa phần tử đầu tiên trong list giống với giá trị chỉ định
  • câu lệnh del: Xóa phần tử trong phạm vi chỉ định
  • phương thức clear(): xóa tất cả các phần tử
  • List comprehension trong python : xóa phần tử theo điều kiện

Lại nữa trong trường hợp đặc biệt bạn muốn xóa phần tử trùng nhau trong list python , hãy xem bài viết Xóa phần tử trùng nhau trong list python.

Lấy ra và xóa phần tử của list theo index | phương thức pop()

Phương thức pop() sẽ lấy phần tử ra và sau đó xóa nó khỏi list tại vị trí index được chỉ định.

Chúng ta chỉ định index của phần tử cần xóa làm đối số của phương thức pop() và xóa phần tử đó khỏi list bằng cú pháp sau đây:

list. pop( index )

Trong đó list là list cần xóa phần tử và index là index của phần tử cần xóa.

Ví dụ:

mylist = ['red', 'blue', 'yellow', 'black']
print(mylist)
#>> ['red', 'blue', 'yellow', 'black']

popped1 = mylist.pop(2)
print(popped1)
#>> yellow

print(mylist)
#>> ['red', 'blue', 'black']

Nếu chỉ định index bằng -1, bạn cũng có thể xóa phần tử cuối cùng của list như sau:

mylist = ['red', 'blue', 'yellow', 'black']
popped1 = mylist.pop(-1)
print(mylist)
#>> ['red', 'blue', 'yellow']

Bạn cũng có thể xóa phần tử cuối cùng của list bằng cách lược bỏ đối số index trong hàm pop() như sau:

mylist = ['red', 'blue', 'yellow', 'black']
popped1 = mylist.pop()
print(mylist)
#>> ['red', 'blue', 'yellow']

Chú ý khi dùng phương thức pop(), trong trường hợp chỉ định đối số index không tồn tại trong list, lỗi IndexError sẽ xảy ra:

mylist = ['red', 'blue', 'yellow', 'black']
popped1 = mylist.pop(5)

#>> IndexError: pop index out of range

Xóa phần tử trong phạm vi chỉ định | lệnh del

Lệnh del giúp chúng ta xóa đi các phần tử trong một phạm vi chỉ định trong list. Phạm vi này sẽ được chỉ định cách sử dụng chức năng cắt (slice) list trong python.

Chúng ta sử dụng lệnh del trong python với hai kiểu cú pháp sau đây:
Xóa một phần tử trong list python bằng lệnh del:

del list [ index ]

Xóa nhiều phần tử trong phạm vi chỉ định bằng lệnh del:

del list [ start : end]

Ví dụ, chúng ta có thể sử dụng lệnh del để xóa một phần tử trong list python như sau:

mylist = ['red', 'blue', 'yellow', 'black']
print(mylist)
#>> ['red', 'blue', 'yellow', 'black']

del mylist[2]
print(mylist)
#>> ['red', 'blue', 'black']

del mylist[3]
print(mylist)
#>> ['red', 'black']

Hoặc chúng ta có thể sử dụng lệnh del để xóa các phần tử trong phạm vi chỉ định trong python như sau:

mylist = ['red', 'blue', 'yellow', 'black']
print(mylist)
#>> ['red', 'blue', 'yellow', 'black']

del mylist[1:3]
print(mylist)
#>> ['red', 'black']

Chúng ta cũng có thể xóa toàn bộ phần tử trong list python bằng lệnh del như sau:

mylist = ['red', 'blue', 'yellow', 'black']
del mylist[:]
print(mylist)
#>> []

Lại nữa, bằng cách sử dụng step trong slice list python, chúng ta có thể nhảy cóc và xóa phần tử trong list python bằng lệnh del như sau:

l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]

l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]

Xóa phần tử đầu tiên trong list giống với giá trị chỉ định | list remove trong python

List remove trong python là phương thức được sử dụng để tìm ra phần tử đầu tiên trong list có giá trị giống với đối số chỉ định và xóa nó khỏi list.

Chúng ta sử dụng phương thức remove() trong python với cú pháp sau đây:

list.remove(value)

Trong đó list là list cần xóa phần tử và value là giá trị của phần tử cần xóa khỏi list.

Ví dụ, chúng ta sử dụng list remove trong python để xóa phần tử trong list như sau:

mylist = ['red', 'blue', 'yellow', 'black' , 'blue']
print(mylist)
#>> ['red', 'blue', 'yellow', 'black', 'blue']

mylist.remove('yellow')
print(mylist)
#>> ['red', 'blue', 'black', 'blue']

Lưu ý là phương thức remove() chỉ xóa đi phần tử đầu tiên tính từ trái qua phải trong list, nếu phần tử đó tồn tại mà thôi. Ví dụ:

mylist = ['red', 'blue', 'yellow', 'black' , 'blue']
print(mylist)
#>> ['red', 'blue', 'yellow', 'black', 'blue']

mylist.remove('blue')
print(mylist)
#>> ['red', 'yellow', 'black', 'blue']

Lại nữa, trong trường hợp giá trị chỉ đinh không tồn tại trong list, lỗi ValueError sẽ xảy ra

mylist = ['red', 'blue', 'yellow', 'black']
mylist.remove('gray')

#>> ValueError: list.remove(x): x not in list

Xóa toàn bộ phần tử trong list python bằng phương thức clear()

Phương thức clear() sẽ xóa toàn bộ phần tử trong list và làm rỗng list đó.
Chúng ta sẽ dùng phương thức clear() trong python với cú pháp sau đây:

list.clear()

Lưu ý là toàn bộ phần tử có trong list sẽ bị xóa, tuy nhiên bản thân đối tượng list sẽ không bị xóa đi mà chỉ bị làm rỗng.

Ví dụ:

mylist = ["A","B","C"]

mylist.clear()
print(mylist)
#>> []

Xóa phần tử trong list python theo điều kiện

Chúng ta có thể ứng list comprehension để xóa phần tử trong list python. Mặc dù nói xóa phần tử theo điều kiện, nhưng thực tế thì chúng ta không xóa list cũ đi mà là lấy các phần tử theo điều kiện đã cho từ list cũ và tạo ra một list mới không chứa phần tử cần xóa.

Ví dụ khi chúng ta muốn xóa các phần tử là số lẻ trong một dãy số liên tiếp chẳng hạn, chúng ta sử dụng list comprehension như sau:

mynum = list(range(10))
print(mynum)
#>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

xóa_số_lẻ = [num for num in mynum if num % 2 = 0]
print(xóa_số_lẻ)
#>> [0, 2, 4, 6, 8]

xóa_số_chẵn = [num for num in mynum if num % 2 = 1]
print(xóa_số_chẵn)
#>> [1, 3, 5, 7, 9]

Chúng ta cũng có thể làm tương tự với chuỗi string:

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']

print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']

print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']

Xóa phần tử trùng nhau trong list python | hàm set() python

Chúng ta có rất nhiều phương pháp để xóa phần tử trùng nhau trong list python, tiêu biểu là cách sử dụng hàm set() trong ví dụ sau:

mylist = ['red', 'blue', 'yellow', 'black' , 'blue']
unique_list=list(set(mylist))
print(unique_list)
#>> ['blue', 'red', 'black', 'yellow']

Chi tiết về cách xóa phần tử trùng nhau trong list python bằng hàm set() cũng như các phương pháp khác hãy xem tại bài Xóa phần tử trùng nhau trong list python.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn tất cả các cách xóa phần tử trong list python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.