Xóa các mục trùng lặp khỏi danh sách Python tại chỗ

Python là một ngôn ngữ lập trình cấp cao, hướng đối tượng với ngữ nghĩa động được diễn giải. Các cấu trúc dữ liệu tích hợp cấp cao của nó, kết hợp với kiểu gõ động và liên kết động, làm cho nó trở nên rất hấp dẫn đối với Phát triển ứng dụng nhanh, cũng như sử dụng làm ngôn ngữ kịch bản hoặc ngôn ngữ keo để kết nối các thành phần hiện có.  

Cú pháp đơn giản, dễ học của Python ưu tiên khả năng đọc, giảm chi phí bảo trì chương trình. Python cung cấp hỗ trợ cho các mô-đun và gói, giúp thúc đẩy tính mô-đun của chương trình và tái sử dụng mã. Trình thông dịch Python và thư viện tiêu chuẩn mở rộng được sử dụng và phân phối miễn phí ở dạng nguồn hoặc nhị phân cho tất cả các nền tảng chính

Trong bài viết này, chúng ta sẽ xem danh sách là gì trong Python. Vì danh sách Python là một tập hợp nhiều phần tử, bao gồm cả các phần tử trùng lặp, nên đôi khi cần phải làm cho danh sách trở thành duy nhất. Trong phần này, chúng ta sẽ xem xét các phương pháp khác nhau để xóa các bản sao khỏi danh sách trong Python. Đầu tiên, hãy cho chúng tôi biết chính xác danh sách là gì?

Khóa đào tạo Python

Tìm hiểu về thao tác dữ liệu trong Python Khám phá khóa học

Xóa các mục trùng lặp khỏi danh sách Python tại chỗ

Danh sách Python là gì?

Danh sách là kiểu dữ liệu quan trọng nhất trong ngôn ngữ lập trình Python. Danh sách này được viết bằng Python dưới dạng danh sách các giá trị được phân tách bằng dấu phẩy được đặt trong dấu ngoặc vuông. Ưu điểm đáng kể nhất của danh sách là các phần tử bên trong nó không nhất thiết phải cùng kiểu dữ liệu và có thể được lập chỉ mục phủ định. Hơn nữa, tất cả các thao tác chuỗi, chẳng hạn như cắt và nối, cũng có thể áp dụng cho kiểu dữ liệu danh sách. Chúng ta cũng có thể tạo danh sách lồng nhau, là danh sách chứa danh sách khác

Làm cách nào để xóa các bản sao khỏi danh sách Python?

Trong Python, có rất nhiều phương pháp để loại bỏ các bản sao khỏi danh sách. Để xóa các mục trùng lặp khỏi một danh sách nhất định, bạn có thể sử dụng các phương pháp này và hoàn thành công việc của mình. Chúng ta hãy nhìn vào họ.  

Phương pháp 1 - Phương pháp ngây thơ

Để xóa các bản trùng lặp khỏi danh sách trong Python, hãy lặp qua các phần tử của danh sách và lưu trữ lần xuất hiện đầu tiên của một phần tử trong danh sách tạm thời trong khi bỏ qua mọi lần xuất hiện khác của phần tử đó

Cách tiếp cận cơ bản được thực hiện theo phương pháp ngây thơ bởi

  • Sử dụng vòng lặp For để duyệt qua danh sách
  • Nếu các phần tử chưa tồn tại trong danh sách tạm thời, chúng sẽ được thêm vào danh sách đó
  • Danh sách tạm thời đã được gán cho danh sách chính

Thí dụ.  

# loại bỏ các bản sao khỏi danh sách bằng các phương pháp ngây thơ

# khởi tạo danh sách

sam_list = [11, 13, 15, 16, 13, 15, 16, 11]

print("Danh sach la. " + str(sam_list))

# xóa trùng lặp khỏi danh sách

kết quả = []

cho tôi trong sam_list.  

nếu tôi không có kết quả.  

kết quả. nối thêm (i)

# in danh sách sau khi xóa

print("Danh sách sau khi loại bỏ trùng lặp. " + str(kết quả))

đầu ra.  

danh sách là. [11, 13, 15, 16, 13, 15, 16, 11]

Danh sách sau khi loại bỏ trùng lặp. [11, 13, 15, 16]

Phương pháp 2 - Sử dụng Danh sách Hiểu

Thay vì sử dụng vòng lặp For để triển khai phương pháp Naive loại bỏ các bản sao khỏi danh sách, chúng ta có thể sử dụng chức năng hiểu Danh sách của Python để thực hiện điều đó chỉ trong một dòng mã

Thí dụ

# loại bỏ các bản sao khỏi danh sách bằng cách sử dụng khả năng hiểu danh sách

# khởi tạo danh sách

sam_list = [11, 13, 15, 16, 13, 15, 16, 11]

print("Danh sach la. " + str(sam_list))

# để xóa trùng lặp khỏi danh sách

kết quả = []

[kết quả. append(x) cho x trong sam_list nếu x không có kết quả]

# in danh sách sau khi xóa

print("Danh sách sau khi loại bỏ trùng lặp. " + str(kết quả))

đầu ra

danh sách là. [11, 13, 15, 16, 13, 15, 16, 11]

Danh sách sau khi loại bỏ trùng lặp. [11, 13, 15, 16]

khóa học miễn phí. Python cho người mới bắt đầu

Nắm vững kiến ​​thức cơ bản về Python Đăng ký ngay

Xóa các mục trùng lặp khỏi danh sách Python tại chỗ

Cách 3 - Sử dụng set()

Đây là phương pháp được sử dụng phổ biến nhất để xóa một bản sao khỏi danh sách Python. Điều này là do thực tế là các bản sao không được phép trong cấu trúc dữ liệu đã đặt. Tuy nhiên, thứ tự của các phần tử bị mất khi sử dụng phương pháp này

Thí dụ.  

# loại bỏ các mục trùng lặp khỏi danh sách bằng cách sử dụng set()

# khởi tạo danh sách

sam_list = [11, 15, 13, 16, 13, 15, 16, 11]

print("Danh sach la. " + str(sam_list))

# để xóa trùng lặp khỏi danh sách

sam_list = danh sách (bộ (sam_list))

# in danh sách sau khi xóa

# đặt hàng méo mó

print("Danh sách sau khi loại bỏ trùng lặp. " + str(sam_list))

đầu ra

danh sách là. [11, 15, 13, 16, 13, 15, 16, 11]

Danh sách sau khi loại bỏ trùng lặp. [16, 11, 13, 15]

Cách 4 - Sử dụng cách hiểu list + enumerate()

Chúng tôi tìm các phần tử riêng biệt và lưu trữ chúng trong một danh sách tạm thời bằng phương pháp hiểu Danh sách. Khi chúng ta sử dụng tính năng hiểu Danh sách kết hợp với hàm enumerate(), chương trình sẽ kiểm tra các phần tử đã gặp trước đó và bỏ qua việc thêm chúng vào danh sách tạm thời. Hàm liệt kê lấy một đối số có thể lặp lại làm đối số và trả về nó dưới dạng đối tượng liệt kê (chỉ mục, phần tử), hàm này thêm một bộ đếm cho mỗi phần tử có thể lặp lại

Thí dụ

# loại bỏ các bản sao khỏi danh sách bằng cách sử dụng hiểu danh sách + liệt kê ()

# khởi tạo danh sách

sam_list = [11, 15, 13, 16, 13, 15, 16, 11]

print("Danh sach la. " + str(sam_list))

# để xóa trùng lặp khỏi danh sách

kết quả = [i cho n, tôi liệt kê (sam_list) nếu tôi không có trong sam_list [. N]]

# in danh sách sau khi xóa

print("Danh sách sau khi loại bỏ trùng lặp. " + str(kết quả))

đầu ra

danh sách là. [11, 13, 15, 16, 13, 15, 16, 11]

Danh sách sau khi loại bỏ trùng lặp. [11, 13, 15, 16]

Phương pháp 5 - Sử dụng bộ sưu tập. Ra lệnhDict. fromkeys()

Đây là cách nhanh nhất để hoàn thành mục tiêu loại bỏ trùng lặp khỏi danh sách Python. Phương pháp này đầu tiên loại bỏ các bản trùng lặp trước khi trả về một từ điển đã được chuyển đổi thành danh sách. Ngoài ra, phương pháp này hoạt động tốt với chuỗi

Thí dụ

# xóa trùng lặp khỏi danh sách bằng bộ sưu tập. Ra lệnhDict. fromkeys()

từ bộ sưu tập nhập OrderedDict

# khởi tạo danh sách

sam_list = [11, 15, 13, 16, 13, 15, 16, 11]

print("Danh sach la. " + str(sam_list))

# để xóa trùng lặp khỏi danh sách

kết quả = danh sách (OrderedDict. fromkeys(sam_list))

# in danh sách sau khi xóa

print("Danh sách sau khi loại bỏ trùng lặp. " + str(kết quả))

đầu ra

danh sách là. [11, 15, 13, 16, 13, 15, 16, 11]

Danh sách sau khi loại bỏ trùng lặp. [11, 15, 13, 16]

Tìm hiểu các hoạt động dữ liệu trong Python, chuỗi, câu lệnh có điều kiện, xử lý lỗi và khung web Python thường được sử dụng Django. Hãy xem khóa đào tạo Python của Simplilearn

Phần kết luận

Có thể sử dụng các tập hợp, hàm tích hợp và phương pháp lặp để loại bỏ các mục trùng lặp khỏi danh sách. Nếu các phần tử của danh sách không thể băm được, hãy luôn thực hiện phương pháp lặp lại, duyệt qua danh sách và trích xuất các mục duy nhất. Phương pháp ngây thơ, hiểu danh sách và danh sách. các phương thức count() là những ví dụ về cách tiếp cận lặp đi lặp lại. Nếu thứ tự của các phần tử không quan trọng, chúng ta có thể loại bỏ các phần tử trùng lặp bằng cách sử dụng phương thức Set và hàm Numpy unique(). Chúng ta có thể sử dụng các hàm Pandas, OrderedDict, hàm reduce(), phương thức Set + sort() và các phương pháp lặp để giữ thứ tự của các phần tử

Để học và tạo dựng sự nghiệp thành công với tư cách là một lập trình viên Python, hãy đăng ký Khóa học cấp chứng chỉ Python của Simplilearn. Với khóa học này, bạn cũng sẽ nắm vững các thao tác dữ liệu, câu lệnh có điều kiện, tập lệnh shell, Django, v.v.

Thông tin về các Tác giả

Xóa các mục trùng lặp khỏi danh sách Python tại chỗ
Ravikiran AS

Ravikiran A S làm việc với Simplilearn với tư cách là Nhà phân tích nghiên cứu. Anh ấy là một người đam mê nhiệt tình, luôn săn lùng những công nghệ mới nhất. Anh ấy thành thạo Ngôn ngữ lập trình Java, Dữ liệu lớn và các Khung dữ liệu lớn mạnh mẽ như Apache Hadoop và Apache Spark