Loại bỏ trùng lặp mảng Python
Lọc các mục trùng lặp từ danh sách Python trong khi vẫn giữ nguyên thứ tự chèn ban đầu của chúng.
Tổng quan
Loại bỏ các bản sao là một trong những thao tác dọn dẹp dữ liệu phổ biến nhất trong phần mềm.
Truyền một danh sách tới một tập hợp (`set(arr)`) sẽ loại bỏ các bản sao nhưng phá hủy thứ tự của các phần tử vì các tập hợp không có thứ tự.
Để loại bỏ các bản sao trong khi vẫn giữ nguyên thứ tự, chúng tôi lặp qua danh sách và theo dõi các phần tử đã thấy trong một tập hợp, thêm các phần tử mới vào danh sách kết quả.
Đầu ra mã & thực thi
Bộ tích lũy các phần tử duy nhất bảo toàn trật tự O(n) hiệu quả.
def remove_duplicates(arr):
seen = set()
result = []
for item in arr:
if item not in seen:
seen.add(item)
result.append(item)
return result
sample_list = [1, 2, 2, 3, 4, 4, 1, 5]
print("Original:", sample_list)
print("Unique: ", remove_duplicates(sample_list))Original: [1, 2, 2, 3, 4, 4, 1, 5]
Unique: [1, 2, 3, 4, 5]Triển khai từng bước
- Vệ sinh lịch sử tìm kiếm và nhật ký hồ sơ giao dịch
- Chuẩn bị danh sách khóa dữ liệu duy nhất cho truy vấn SQL
- Làm sạch mảng để lập bản đồ trực quan
Câu hỏi thường gặp
Cách nhanh nhất để thực hiện việc này trongPython 3.7+ là gì?
VìPython 3.7+ giữ nguyên thứ tự chèn từ điển, nên bạn có thể chạy `list(dict.fromkeys(arr))` để xóa các bản sao trong khi vẫn duy trì thứ tự trong một bước tối ưu hóa duy nhất.
Chủ đề liên quan
Khám phá các thuật toán sắp xếp python. Trực quan hóa sắp xếp bong bóng và sắp xếp hợp nhất nguyên bản trong ngữ cảnh IDE của trình duyệt.
Thuật toán tìm kiếm nhị phân PythonTìm kiếm danh sách được sắp xếp theo thời gian logarit O(log n). Chạy và hiểu tìm kiếm nhị phân trong Python, bao gồm logic từng bước, các trường hợp phức tạp và tối ưu hóa.