Xóa phần tử trùng nhau trong list python

Đăng bởi: Admin | Lượt xem: 4931 | Chuyên mục: Python

Nội dung chính

  • 1. Mảng trong python là gì?
  • 2. Bốn cách xoá 1 phần tử trong mảng
  • 2.1. Xoá 1 phần tử trong mảng sử dụng remove()
  • 2.2. Xoá 1 phần tử trong mảng sử dụng pop()
  • 2.3. Xoá 1 phần tử trong mảng sử dụng del
  • 2.4. Xoá 1 phần tử trong mảng sử dụng numpy Arrays
  • 3. Kết luận
  • Video liên quan

Như đã giới thiệu với mọi người trong bài trước, Python là một ngôn ngữ khá là linh động và mềm dẻo nên nó cũng đã cung cấp cho chúng ta rất nhiều hàm có sẵn dùng để xử lý List. Bài viết này mình sẽ liệt kê một số hàm hay dùng và ví dụ kèm theo cho mọi người cùng tham khảo.

Hàm này có tác dụng chuyển đổi kiểu dữ liệu của một biến sang dạng list.

Cú pháp:

Trong đó, data là biến chứa tuple bạn cần chuyển đổi.

VD:

string = “vncoder.vn”
print(list(string))
# Ket Qua: [‘v’, ‘n’, ‘c’, ‘o’, ‘d’, ‘e’, ‘r’, ‘.’, ‘v’, ‘n’]

Hàm này trả về số lượng phần tử có trong list.

Cú pháp:

Trong đó, list là list mà các bạn cần đếm.

VD:

list = [‘A’, ‘B’, ‘C’]
print(len(list))
#Kết quả: 3

Hàm này sẽ trả về phần tử có giá trị lớn nhất trong list. Nếu là chuỗi thì nó sẽ trả về phần tử có độ dài chuỗi dài nhất, nếu là số thì nó sẽ trả về phần tử có số lớn nhất.

Cú pháp:

Trong đó, list là list mà các bạn cần kiểm tra.

VD:

list = [‘A’, ‘B’, ‘C’]
print(max(list))
#Kết quả: C
list = [‘1’, ‘3’, ‘2’]
print(max(list))
#Kết quả: 3

Hàm này sẽ trả về phần tử có giá trị nhỏ nhất trong list. Nếu là chuỗi thì nó sẽ trả về phần tử có độ dài chuỗi ngắn nhất, nếu là số thì nó sẽ trả về phần tử có số nhỏ nhất.

Cú pháp:

Trong đó, list là list mà các bạn cần kiểm tra.

VD:

list = [‘A’, ‘B’, ‘C’]
print(min(list))
#Kết quả: A
list = [‘1’, ‘3’, ‘2’]
print(max(list))
#Kết quả: 1

Phương thức này có tác dụng thêm phần vào cuối của một list.

Cú pháp:

Trong đó:

  1. mylist là list mà các bạn cần thêm phần tử.
  2. obj là phần tử mà bạn muốn thêm vào mylist.

VD: 

list = [‘A’, ‘B’, ‘C’]
list.append(‘D’)
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’]
list.append((‘E’, ‘F’))
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’, (‘E’, ‘F’)]

Hàm này có tác dụng kế thừa lại các phần tử của list2 và thêm vào trong list1.

Cú pháp:

Trong đó: 

  1. list1 là list mà bạn muốn kế thừa từ một list khác (ở đây là list2).
  2. list2 là list được sử dụng để cho list khác kết thừa (ở đây là list1).

VD:

list = [‘A’, ‘B’, ‘C’]
list.extend(‘D’)
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’]
list.extend((‘E’, ‘F’))
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’]

Lưu ý: Ở đây mình đã cố tình để ví dụ của phương thức append() và extend() là giống nhau để cho các bạn thấy được sự khác biệt giữa 2 phương thức này (xem kỹ nhé! không nhận ra được thì comment mình sẽ trả lời :D).

Phương thức này có tác dụng đếm số lần xuất hiện của một thành phần trong list!

Cú pháp:

Trong đó:

  1. mylist là list mà các bạn cần kiểm tra.
  2. val là phần tử mà bạn muốn tìm và đếm trong list mylist.

VD:

list = [‘A’, ‘B’, ‘C’]
print(list.count(‘A’))
# Kết quả: 1

Phương thức này có tác dụng trả về index xuất hiện đầu tiên của phần tử mà bạn muốn tìm và nếu như không tìm thấy thì nó sẽ gọi exception.

Cú Pháp:

Trong đó:

  1. mylist là list mà các bạn cần kiểm tra.
  2. val là phần tử mà bạn muốn tìm trong list mylist.

VD: 

list = [‘A’, ‘B’, ‘C’]
print(list.index(‘B’))
# Kết quả: 1
print(list.index(‘D’))
# Kết quả: ValueError: ‘D’ is not in list

Phương thức có tác dụng thêm phần tử vào vị trí index của list, và các phần tử sau index đó sẽ được đẩy về phía sau.

Cú pháp:

mylist.insert(index, val)

Trong đó:

  1. mylist là list mà các bạn cần thêm.
  2. index là vị trí mà bạn muốn thêm phần tử val vào.
  3. val là phần tử mà bạn muốn thêm vào trong list mylist.

VD: 

list = [‘A’, ‘B’, ‘C’]
list.insert(0, ‘Z’)
print(list)
# Kết quả: [‘Z’, ‘A’, ‘B’, ‘C’]
list.insert(2, ‘D’)
print(list)
# Kết quả: [‘Z’, ‘A’, ‘D’, ‘B’, ‘C’]

Phương thức này có tác dụng đảo ngược vị trí của các phần tử trong list.

Cú pháp:

Trong đó, mylist là list mà các bạn muốn đảo ngược.

VD:

list = [‘A’, ‘B’, ‘C’]
list.reverse()
print(list)
# Kết quả: [‘C’, ‘B’, ‘A’]

Phương thức này có tác dụng xóa phần tử khỏi list.

Cú Pháp:

Trong đó:

  1. mylist là list mà các bạn cần xóa phần tử.
  2. val là phần tử mà bạn muốn muốn xóa trong list mylist.

VD: 

list = [‘A’, ‘B’, ‘C’]
list.remove(‘C’)
print(list)
# Kết quả: [‘A’, ‘B’]

Phương thức này có tác dụng xóa bỏ phần tử trong list dựa trên index của nó.

Cú pháp:

Trong đó:

  1. mylist là list mà các bạn cần xóa phần tử.
  2. index là index của phần tử mà bạn muốn muốn xóa trong list mylist. Mặc định thì index = mylist[-1] (phần tử cuối cùng trong list).

VD:

list = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
list.pop()
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’]
list.pop(2)
print(list)
# Kết quả: [‘A’, ‘B’, ‘D’]

Phương thức này có tác dụng sắp xếp lại các phần tử trong list theo một thứ tự xác định.

Cú pháp:

mylist.sort(reverse, key)

Trong đó:

  1. mylist là list mà các bạn muốn sắp xếp.
  2. reverse là một boolean cấu hình kiểu sắp xếp. Nếu reverse = True thì list sẽ được sắp xếp từ lớn đến bé, nếu reverse = False thì list sẽ được sắp xếp theo thứ tự từ bé đến lớn. Mặc định thì reverse = False.
  3. key là callback def để xử lý list hoặc là một lamda function (thường được dùng để sắp xếp các list tuple hoặc dictionary).

VD: 

list = [‘A’, ‘C’, ‘B’, ‘E’, ‘D’]
list.sort()
print(list)
# Kết quả: [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
list.sort(reverse=True)
print(list)
# Kết quả: [‘E’, ‘D’, ‘C’, ‘B’, ‘A’]
def custom_sort(elem):
return elem[1]
list = [(1, 2), (5, 7), (7, 100), (4, 4)]
list.sort(key=custom_sort)
print(list)
# Kết quả: [(1, 2), (4, 4), (5, 7), (7, 100)]

Phương thức này có tác dụng xóa bỏ hết tất cả các phần tử trong list.

Cú pháp:

Trong đó,  mylist là list mà bạn muốn xóa bỏ hết phần tử.

VD:

list = [‘A’, ‘C’, ‘B’, ‘E’, ‘D’]
list.clear()
print(list)
# Kết quả: []

Như vậy, thông qua bài học này, chúng ta đã cùng nhau tìm hiểu những hàm xử lý list cơ bản trong Python. Sang bài tiếp theo, chúng ta sẽ học về một kiểu dãy phổ biến khác trong Python, đó là Tuple. Cảm ơn các bạn đã đọc.

Nhiều bạn mới học lập trình sẽ không biết cách xóa 1 phần tử trong mảng của Python. Việc xoá phần tử sẽ trở nên dễ dàng hơn nếu bạn biết những phương thức phù hợp.

Trong bài viết này, Got It sẽ chia sẻ tới bạn 4 cách để xóa 1 phần tử trong mảng. Những cách này đều rất đơn giản. Chỉ cần luyện tập vài lần, chắc chắn, bạn sẽ sớm “master” xoá phần tử khỏi mảng trong ngôn ngữ Python.

Xóa phần tử trùng nhau trong list python

1. Mảng trong python là gì?

Mảng (array) là tập hợp các phần tử có cùng một kiểu dữ liệu duy nhất, ví dụ như mảng số nguyên, mảng chuỗi. Các phần tử trong mảng được xác định bởi index (chỉ mục).

Có nhiều bạn sẽ thấy khó phân biệt giữa mảng và list. Một điểm khác biệt nổi bật của list so với mảng là list có thể lưu đa dạng kiểu dữ liệu. Nói cách khác, trong một list, bạn có thể lưu trữ đồng thời cả số nguyên, chuỗi, số thập phân,…. Tuy chỉ chứa một kiểu dữ liệu duy nhất, nhưng đặc điểm này cũng mang lại cho mảng một điểm cộng cực lớn. Mảng chiếm ít dữ liệu bộ nhớ hơn list.

2. Bốn cách xoá 1 phần tử trong mảng

2.1. Xoá 1 phần tử trong mảng sử dụng remove()

Xóa phần tử trùng nhau trong list python

Function remove() có thể được sử dụng trong bất kỳ mảng nào ở Python. Để sử dụng function này, chúng ta đưa giá trị phần tử muốn xoá vào trong (). Để bạn hình dung dễ hơn, Got It xin đưa ra mảng dưới đây.

array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

Nếu muốn loại bỏ phần tử 40, bạn cần viết câu lệnh:

Kết quả sẽ cho ra cho bạn một mảng mà không có phần tử 40.

[10, 20, 30, 50, 60, 70, 80, 90, 100]

2.2. Xoá 1 phần tử trong mảng sử dụng pop()

Function pop() sẽ xoá phần tử có chỉ mục (index) tương ứng với từng phần tử trong mảng. Giả như chúng ta có một mảng tương tự như mảng ở trên (với giá trị phần tử từ 10 đến 100). Bạn có thể viết đoạn code như sau:

index = 3
array.pop(index)

In kết quả mảng sau khi thực hiện câu lệnh pop, chúng ta sẽ được mảng mới là:

[10, 20, 30, 50, 60, 70, 80, 90, 100]

Giống như cách nó hoạt động trong cấu trúc dữ liệu stack, pop() giúp loại bỏ phần tử trong mảng và trả lại kết quả mảng mới không có phần tử được chỉ định xoá. Điểm khác biệt duy nhất là với mảng, chúng ta có thể bỏ một phần tử bất kỳ. Với stack, chỉ có phần tử đứng đầu (ví dụ: phần tử cuối cùng được add) có thể bị xoá bỏ.

2.3. Xoá 1 phần tử trong mảng sử dụng del

del là một keyword trong Python được dùng để xoá các object. Do đó, chúng ta có thể tận dụng del để xoá 1 phần tử trong mảng.

Xóa phần tử trùng nhau trong list python

Cùng sử dụng mảng và index tương tự:

array = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
index = 3

Để xoá phần tử có index 3, chúng ta hãy viết đoạn code như sau:

Sau đó, khi in lại mảng, bạn sẽ có được kết quả:

[10, 20, 30, 50, 60, 70, 80, 90, 100]

2.4. Xoá 1 phần tử trong mảng sử dụng numpy Arrays

Numpy là một thư viện toán học cực kỳ phổ biến và mạnh mẽ của Python. Muốn khởi tạo và truy cập các phần tử của nympy array, chúng ta cần phải import nympy.

Để tạo một numpy array, chúng ta cần đóng gói lại mảng đang sử dụng bằng câu lệnh np.array():

Hoặc chúng ta cũng có thể tạo ra mảng mới cũng bằng cách sử dụng np.array():

a = np.array([10, 20, 30, 40, 50, 60, 70, 80, 90, 100])

Bây giờ, để loại bỏ phần tử ở index 3, chúng ta sử dụng đoạn code sau:

index = 3
a = np.delete(a,index)

delete() là một method thường được sử dụng trong module numpy. Nó giúp xoá bỏ các phần tử trong Numpy Array một cách hiệu quả.

Cách này cũng sẽ mang lại cho bạn một mảng không có phần tử index số 3:

[10, 20, 30, 50, 60, 70, 80, 90, 100]

3. Kết luận

Có rất nhiều cách để xoá một phần tử trong mảng của Python. Đôi khi, chúng ta sẽ muốn xoá phần tử bằng index. Có lúc, chúng ta lại muốn xoá phần tử bằng cách nhập luôn giá trị của phần tử đó. Hãy thử làm theo hướng dẫn của Got It và ghi nhớ các cách để sử dụng trong tương lai nhé!

Tin rằng với bài viết của chúng mình, việc xoá 1 phần tử trong mảng đã không còn là chướng ngại với bạn. Nếu thấy thích, hãy theo dõi blog của Got It để đọc thêm nhiều bài viết về Python nhé!

Nguồn: Stackabuse