Trong hướng dẫn này, bạn sẽ học cách xóa tất cả các chuỗi trùng lặp khỏi một chuỗi đã cho trong Python. Chuỗi trong Python là một chuỗi các ký tự được bao bọc bên trong dấu nháy đơn, kép hoặc ba. Đối với một chuỗi đã cho, chúng ta phải xóa tất cả các ký tự xuất hiện nhiều lần trong chuỗi. Chúng tôi sẽ theo thứ tự xuất hiện của các nhân vật. Ví dụ,
Đầu vào. "chuỗi"
đầu ra. "chuỗi"
Để giải quyết vấn đề này, có nhiều cách tiếp cận khác nhau,
- sử dụng hàm OrderedDict[] và fromkeys[]
- sử dụng hàm OrderedDict[] và thiết lập phương pháp tiếp cận
Chúng ta sẽ xem xét các cách tiếp cận này một cách riêng biệt
Cách tiếp cận 1. sử dụng hàm OrderedDict[]
Theo cách tiếp cận này, chúng tôi sẽ sử dụng phương thức OrderedDict[] từ lớp bộ sưu tập và fromkeys[] trong chương trình của chúng tôi
OrderedDict là một lớp con từ điển ghi nhớ thứ tự của các phím được chèn trước. Vì không thể có các khóa trùng lặp nên phương thức này sẽ trả về chuỗi sau khi xóa các ký tự trùng lặp
thuật toán
Thực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn
Bước 1- Nhập OrderedDict từ lớp bộ sưu tập
Bước 2- Xác định một chức năng sẽ loại bỏ các bản sao
Bước 3- Khai báo một chuỗi ký tự
Bước 4- Gọi hàm xóa ký tự trong chuỗi đó
Bước 5- In giá trị trả về của hàm
Chương trình Python 1
Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên
from collections import OrderedDict
def remove_duplicate[s]:
return "".join[OrderedDict.fromkeys[s]]
# test
s="abcfgbsca"
print[s]
print["After removing duplicates: ",remove_duplicate[s]]
abcfgbsca
Sau khi xóa trùng lặp. abcfgs
Cách tiếp cận 2. Ra lệnhDict
Trong cách tiếp cận này, chúng tôi sẽ chuyển đổi chuỗi thành một tập hợp bằng cách sử dụng phương thức set[]. Khi đó chúng ta sẽ khai báo một chuỗi khác và lưu trữ các ký tự chưa có trong chuỗi. Chuỗi mới này sẽ chứa chuỗi kết quả
thuật toán
Thực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn
Bước 1- Nhập OrderedDict từ lớp bộ sưu tập
Bước 2- Xác định một chức năng sẽ loại bỏ các bản sao
Bước 3- Tạo một bộ chuỗi và lưu trữ
Bước 4- Khai báo một chuỗi rỗng mới
Bước 5- Chạy một vòng lặp và thêm từng ký tự vào chuỗi trống nếu nó chưa có trong chuỗi
Bước 6- In chuỗi
Chương trình Python 2
Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên
# remove duplicates in string
from collections import OrderedDict
def remove_duplicate[s]:
string=set[s]
string="".join[string]
dup=""
for i in s:
if[i in dup]:
pass
else:
dup=dup+i
print["After removing: ",dup]
s="stdsrdthw"
print[s]
print[remove_duplicate[s]]
stdsrdthw
Sau khi xóa. stdrhw
Phần kết luận
Trong hướng dẫn này, chúng tôi đã thảo luận về hai cách tiếp cận để loại bỏ các bản sao khỏi chuỗi. Chúng ta cũng đã thảo luận về cách sử dụng các phương thức của lớp tập hợp và sử dụng chúng để loại bỏ các bản sao
Trong bài này chúng ta sẽ tìm hiểu list trong python là gì. Vì danh sách python là một tập hợp nhiều phần tử thậm chí chứa các phần tử trùng lặp, đôi khi cần phải làm cho danh sách trở nên độc nhất. Ở đây, chúng ta sẽ nghiên cứu nhiều cách để loại bỏ các bản sao khỏi danh sách trong python. Vậy hãy bắt đầu
Danh sách là gì?
Danh sách là kiểu dữ liệu quan trọng nhất trong ngôn ngữ python. Trong ngôn ngữ Python, danh sách được viết dưới dạng danh sách các giá trị được phân tách bằng dấu phẩy bên trong dấu ngoặc vuông. Ưu điểm quan trọng nhất của danh sách là các phần tử bên trong danh sách không bắt buộc phải có cùng kiểu dữ liệu và lập chỉ mục phủ định. Ngoài ra, mọi thao tác của chuỗi cũng được áp dụng tương tự trên kiểu dữ liệu danh sách như cắt, nối, v.v. Ngoài ra, chúng ta có thể tạo danh sách lồng nhau i. danh sách e chứa danh sách khác
Ví dụ
# creating a list of items with different data types sample_list = [6,"mark",[A,I]] print[sample_list]
đầu ra
[6, đánh dấu, ['A', 'Tôi']]
5 cách để loại bỏ các bản sao khỏi danh sách trong Python
Có nhiều cách để loại bỏ các bản sao khỏi danh sách trong python. Hãy cùng nghiên cứu chúng dưới đây
Phương pháp 1. Phương pháp ngây thơ
Trong phương pháp này, chúng tôi duyệt qua danh sách rồi nối thêm lần xuất hiện đầu tiên của phần tử trong danh sách mới, sau đó tất cả các phần tử khác sẽ bị bỏ qua
Ví dụ
# removing duplicated from the list using naive methods # initializing list sam_list = [11, 13, 15, 16, 13, 15, 16, 11] print ["The list is: " + str[sam_list]] # remove duplicated from list result = [] for i in sam_list: if i not in result: result.append[i] # printing list after removal print ["The list after removing duplicates : " + str[result]]
đầ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 một danh sách toàn diện
Phương pháp này tương tự như phương pháp trên, nhưng phương pháp này ngắn hơn phương pháp trên
Ví dụ
# removing duplicated from the list using list comprehension # initializing list sam_list = [11, 13, 15, 16, 13, 15, 16, 11] print ["The list is: " + str[sam_list]] # to remove duplicated from list result = [] [result.append[x] for x in sam_list if x not in result] # printing list after removal print ["The list after removing duplicates: " + str[result]]
đầ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 3. Sử dụng bộ[]
Phương pháp này là phương pháp phổ biến nhất để xóa bản sao khỏi danh sách python. Điều này là do cấu trúc dữ liệu đã đặt không cho phép trùng lặp. Nhưng hạn chế của phương pháp này là mất thứ tự của các phần tử
Ví dụ
# removing duplicated from the list using set[] # initializing list sam_list = [11, 15, 13, 16, 13, 15, 16, 11] print ["The list is: " + str[sam_list]] # to remove duplicated from list sam_list = list[set[sam_list]] # printing list after removal # ordering distorted print ["The list after removing duplicates: " + 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]
Phương pháp 4. Sử dụng hiểu danh sách + liệt kê[]
Danh sách toàn diện khi được hợp nhất với chức năng liệt kê, chúng tôi có thể xóa bản sao khỏi danh sách python. Về cơ bản trong phương pháp này, các phần tử đã xảy ra sẽ bị bỏ qua và thứ tự cũng được duy trì
Ví dụ
# removing duplicated from the list using list comprehension + enumerate[] # initializing list sam_list = [11, 15, 13, 16, 13, 15, 16, 11] print ["The list is: " + str[sam_list]] # to remove duplicated from list result = [i for n, i in enumerate[sam_list] if i not in sam_list[:n]] # printing list after removal print ["The list after removing duplicates: " + str[result]]
đầ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à phương pháp nhanh nhất để đạt được mục tiêu loại bỏ các bản sao khỏi danh sách python. Phương pháp này trước tiên sẽ loại bỏ các bản sao và trả về một từ điển đã được chuyển đổi thành một danh sách. Ngoài ra, phương pháp này hoạt động tốt trong trường hợp chuỗi
Ví dụ
# removing duplicated from list using collections.OrderedDict.fromkeys[] from collections import OrderedDict # initializing list sam_list = [11, 15, 13, 16, 13, 15, 16, 11] print ["The list is: " + str[sam_list]] # to remove duplicated from list result = list[OrderedDict.fromkeys[sam_list]] # printing list after removal print ["The list after removing duplicates: " + str[result]]
đầ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]
Đây là một số phương pháp mà chúng ta có thể xóa bản sao khỏi danh sách python
Phần kết luận
Do đó, trong bài viết này, chúng ta đã tìm hiểu về danh sách python và các phương pháp khác nhau để loại bỏ các phần tử trùng lặp khỏi danh sách trong python. Ngoài ra, chúng tôi đã nghiên cứu ví dụ cùng với đầu ra cho các phương thức khác nhau