Computer >> Máy Tính >  >> Lập trình >> Python

Tìm tất cả các ký tự trùng lặp từ một chuỗi bằng Python

Một chuỗi được đưa ra. Nhiệm vụ của chúng ta là tìm những ký tự có tần suất nhiều hơn một trong chuỗi đã cho.

Ví dụ, chúng ta có thể thấy rằng chuỗi “Hello World. Hãy học Python ”để thuật toán sẽ tìm những chữ cái xuất hiện nhiều lần. Trong trường hợp này, kết quả sẽ như thế này -

e : 3
l : 4
o , 3)
<space> : 4 
r : 2
t : 2
n : 2

Để thực hiện vấn đề này, chúng tôi đang sử dụng Bộ sưu tập Python. Từ bộ sưu tập, chúng ta có thể nhận được phương thức Counter (). Phương thức Counter () được sử dụng để đếm các đối tượng bảng băm. Trong trường hợp này, nó tách các ký tự khỏi văn bản và biến mỗi ký tự thành một khóa của từ điển và số ký tự là giá trị của các khóa đó.

Thuật toán

Step 1: Find the key-value pair from the string, where each character is key and character counts are the values.
Step 2: For each key, check whether the value is greater than one or not. 
Step 3: If it is greater than one then, it is duplicate, so mark it. Otherwise, ignore the character 

Mã mẫu

from collections import Counter
defcalc_char_freq(string):
   freq_count = Counter(string) # get dictionary with letters as key and frequency as value
   for key in freq_count.keys():
      if freq_count.get(key) > 1: # for all different keys, list the letters and frequencies
         print("(" + key + ", " + str(freq_count.get(key)) + ")")
      myStr = 'Hello World. Let’s learn Python'    
      calc_char_freq(myStr)

Đầu ra

(e, 3)
(l, 4)
(o, 3)
( , 4)
(r, 2)
(t, 2)
(n, 2)