Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

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


Cho một chuỗi. Nhiệm vụ tìm các ký tự có tần suất lớn hơn 1 trong chuỗi.

Ví dụ, chuỗi "Hello World. Let's learn Python" sẽ tìm các chữ cái xuất hiện nhiều lần. Kết quả:

e: 3
l: 4
o: 3
space: 4
r: 2
t: 2
n: 2

Để triển khai, dùng Python Collections. Từ collection, có Counter() method. Counter() đếm đối tượng hashtable. Ở đây, tách ký tự từ text và làm mỗi ký tự thành key của dictionary, số lần xuất hiện là value.

Thuật toán

Bước 1: Tìm cặp key-value từ chuỗi, mỗi ký tự là key, count là value.
Bước 2: Với mỗi key, kiểm tra value > 1 hay không.
Bước 3: Nếu > 1 thì là duplicate, đánh dấu. Ngược lại bỏ qua.

Ví dụ mã

from collections import Counter

def calc_char_freq(string):
    freq_count = Counter(string)  # dictionary: key=chữ cái, value=tần suất
    for key in freq_count.keys():
        if freq_count.get(key) > 1:
            print("(" + key + ", " + str(freq_count.get(key)) + ")")

myStr = 'Hello World. Let\'s learn Python'
calc_char_freq(myStr)

Kết quả

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