Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách loại bỏ phần tử trùng lặp khỏi danh sách (List) trong Python
Python cung cấp cấu trúc dữ liệu List, cho phép lưu trữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau và chấp nhận phần tử trùng lặp. Tuy nhiên, trong một số trường hợp, bạn cần loại bỏ các phần tử trùng lặp để chỉ giữ lại những giá trị duy nhất.
Bài viết này sẽ hướng dẫn cách loại bỏ phần tử trùng lặp trong List bằng các phương pháp từ cơ bản đến nâng cao, bao gồm cả việc sử dụng thư viện NumPy.
Sử dụng Set trong Python
Set trong Python chỉ chứa các phần tử duy nhất, và mọi phần tử trùng lặp sẽ bị tự động loại bỏ khi được thêm vào Set. Trong cách này, danh sách sẽ được chuyển đổi thành Set, sau đó lại chuyển đổi ngược về List.
Ví dụ:
Bài viết này được đăng tại [free tuts .net]
duplicate_list = [56, 4, 81, 56, 9, 4] cleaned_list = list(set(duplicate_list)) print(cleaned_list)
Kết quả:
[56, 81, 4, 9]
Lưu ý: Khi chuyển đổi từ danh sách sang Set, thứ tự ban đầu của các phần tử sẽ không được giữ nguyên.
Sử dụng dict.fromkeys()
trong Python
Phương pháp này không chỉ loại bỏ phần tử trùng lặp mà còn giữ nguyên thứ tự ban đầu của danh sách.
Hàm dict.fromkeys()
trong Python cho phép tạo một dictionary từ một iterable (như danh sách). Trong đó, các giá trị sẽ được tự động gán là None
, giúp loại bỏ phần tử trùng lặp nhờ đặc tính của dictionary là không chứa khóa trùng.
Ví dụ:
duplicate_list = [56, 4, 81, 56, 9, 4] cleaned_list = list(dict.fromkeys(duplicate_list)) print(cleaned_list)
Kết quả:
[56, 4, 81, 9]
Sử dụng numpy.unique()
trong Python
Thư viện NumPy nổi tiếng với khả năng xử lý hiệu quả các mảng dữ liệu. Hàm numpy.unique()
giúp loại bỏ phần tử trùng lặp và trả về một mảng đã được sắp xếp theo thứ tự tăng dần.
Ví dụ:
import numpy as np duplicate_list = [56, 4, 81, 56, 9, 4] cleaned_list = list(np.unique(duplicate_list)) print(cleaned_list)
Kết quả:
[4, 9, 56, 81]
Lưu ý: Sử dụng
numpy.unique()
sẽ không giữ thứ tự gốc mà thay vào đó sắp xếp danh sách theo thứ tự tăng dần.
Kết bài
- Nếu không quan trọng thứ tự, dùng Set là cách nhanh nhất.
- Nếu muốn giữ nguyên thứ tự, hãy sử dụng
dict.fromkeys()
. - Nếu cần kết quả đã sắp xếp tăng dần,
numpy.unique()
là lựa chọn phù hợp.
Với ba phương pháp này, bạn có thể linh hoạt xử lý danh sách trong Python tùy theo nhu cầu cụ thể của mình.