Trong bài viết này, chúng ta sẽ thấy cách tìm tần suất của từng ký tự trong một chuỗi cho trước. Sau đó kiểm tra xem hai hoặc nhiều ký tự có cùng tần suất trong chuỗi đó hay không. Chúng ta sẽ thực hiện qua hai bước. Chương trình đầu tiên chỉ tìm tần suất của từng ký tự.
Tần suất của từng ký tự
Ở đây, chúng ta tìm tần suất của từng ký tự trong chuỗi đầu vào. Khai báo một dictionary rỗng, sau đó thêm từng ký tự làm key. Chúng ta cũng gán giá trị cho mỗi ký tự để tạo cặp key-value cần thiết cho dictionary.
Ví dụ
in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
if k in dic1.keys():
dic1[k] += 1
else:
dic1[k] = 1
print(dic1)
for k in dic1.keys():
print(k, " xuất hiện ", dic1[k], " lần")
Kết quả
Chạy đoạn code trên cho kết quả sau:
{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
S xuất hiện 1 lần
h xuất hiện 2 lần
e xuất hiện 4 lần
xuất hiện 3 lần
s xuất hiện 5 lần
l xuất hiện 4 lần
a xuất hiện 1 lần
Tần suất duy nhất của từng ký tự
Tiếp theo, chúng ta mở rộng chương trình trên để tìm tần suất cho từng ký tự duy nhất. Nếu giá trị duy nhất của tần suất lớn hơn 1, thì kết luận rằng không phải tất cả các ký tự đều có cùng tần suất.
Ví dụ
in_string = "She sells sea shells"
dic1 = {}
for k in in_string:
if k in dic1.keys():
dic1[k] += 1
else:
dic1[k] = 1
print(dic1)
u_value = set(val for udic in dic1 for val in (dic1.values()))
print("Số lượng tần suất duy nhất: ", len(u_value))
if len(u_value) == 1:
print("Tất cả ký tự có cùng tần suất")
else:
print("Các ký tự có tần suất khác nhau.")
Kết quả
Chạy đoạn code trên cho kết quả sau:
{'S': 1, 'h': 2, 'e': 4, ' ': 3, 's': 5, 'l': 4, 'a': 1}
Số lượng tần suất duy nhất: 5
Các ký tự có tần suất khác nhau.