Các chữ cái trong chuỗi được lặp đi lặp lại và nếu nó đã được khớp với một ký tự, nó sẽ được tăng lên
Trong hướng dẫn này, chúng ta sẽ học cách tìm ký tự có tần suất xuất hiện lớn nhất trong chuỗi. 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. Tần suất của một ký tự là tổng số lần ký tự đó xuất hiện trong chuỗi đã cho. Chúng ta phải tìm và in ký tự xuất hiện nhiều nhất trong chuỗi trong chương trình của chúng ta
Nhìn vào các ví dụ để hiểu định dạng đầu vào và đầu ra
Đầu vào. "bcbsvbsvbwberb"
đầu ra. b
Đầu vào. "Học đêm nay"
đầu ra. t
Tiếp cận
Để thực hiện nhiệm vụ này, chúng ta có thể làm theo nhiều cách tiếp cận, một số cách được thảo luận bên dưới
- Bằng cách sử dụng các khóa trong từ điển và phương thức max()
- Bằng cách sử dụng phương thức Counter() và max()
Chúng tôi sẽ thảo luận chi tiết cả ba cách tiếp cận một cách riêng biệt
Cách tiếp cận 1. Các khóa của từ điển và phương thức max()
Trong cách tiếp cận này, chúng tôi sẽ lặp qua chuỗi và tạo thành các khóa của các ký tự xuất hiện trong chuỗi. Các khóa sẽ có giá trị là ký tự đó đã xuất hiện bao nhiêu lần trong chuỗi. Sau đó, sử dụng phương thức max(), chúng ta có thể tìm thấy khóa có giá trị đếm lớn nhất, sau đó sẽ được sử dụng để in kết quả
Phương thức max() trả về mục có giá trị cao nhất
thuật toán
Bước 1- Xác định một chuỗi ký tự
Bước 2- Khai báo một từ điển trống
Bước 3- Chạy một vòng lặp để lặp qua chuỗi
Bước 4- Thêm ký tự vào từ điển và đếm tần suất
Bước 5- Để có được số lượng tối đa, hãy sử dụng max() và lưu trữ giá trị được trả về bởi nó trong một biến
Bước 6- In kết quả biến có số đếm thấp nhất
Chương trình Python 1
Trong chương trình này, chúng tôi đã xác định một chuỗi có các giá trị nhất định và in ký tự có tần suất xuất hiện ít nhất trong chuỗi đó bằng từ điển char_freq, lưu trữ các ký tự và số lần xuất hiện của chúng dưới dạng khóa và giá trị của nó. Chúng ta có thể lấy Key bằng phương thức get()
string= "mississippis" print(string) char_freq={} for i in string: if i in char_freq: char_freq[i]=char_freq[i]+1 else: char_freq[i] = 1 result= max(char_freq, key = char_freq.get) print("Most frequent character: ",result)
Mississippi
Nhân vật thường xuyên nhất. S
Cách tiếp cận 2. Bộ đếm () và tối đa ()
Phương thức Counter() có thể được sử dụng để lấy tần số của mỗi ký tự trong chuỗi, sau đó chúng ta có thể sử dụng phương thức max() để lấy giá trị đếm tối đa
Bộ đếm là một lớp con đếm tất cả các đối tượng có thể băm
thuật toán
Bước 1- Bộ đếm nhập khẩu
Bước 2- Khai báo một chuỗi ký tự
Bước 3- In chuỗi
Bước 4- Gọi Counter() và truyền chuỗi
Bước 5- Để có được số lượng tối đa, hãy sử dụng max() và lưu trữ giá trị được trả về bởi nó trong một biến
Bước 6- In biến dưới dạng kết quả
Chương trình Python 2
Trong chương trình này, để sử dụng Counter(), chúng ta phải nhập nó từ lớp collections trong chương trình của chúng ta. Vì Bộ đếm hoạt động cho các đối tượng có thể băm nên chúng được truy cập bằng khóa. Chúng ta có thể lấy Key bằng phương thức get()
from collections import Counter string= "pppppppghhhijeuupffe" print(string) result= Counter(string) result= max(result, key=result.get) print("Most frequent character: ",result)
pppppppghhhijeuupffe
Nhân vật thường xuyên nhất. P
Phần kết luận
Trong hướng dẫn này, chúng ta đã thấy hai cách tiếp cận để lấy ký tự thường xuyên nhất từ chuỗi. Cách tiếp cận đầu tiên là tìm số lượng tối đa bằng cách sử dụng các phím của từ điển và sử dụng phím để in ký tự thường xuyên nhất. Cách tiếp cận thứ hai là sử dụng phương thức Counter() để lấy tổng số cho tất cả các ký tự. Sử dụng phương thức max(), chúng ta có thể nhận được giá trị đếm tối đa
Đôi khi bạn có thể cần đếm các ký tự lặp lại trong chuỗi trong Python. Có một số cách để làm điều này trong Python. Trong bài viết này, chúng ta sẽ tìm hiểu cách đếm ký tự lặp lại trong chuỗi trong Python. Chúng ta sẽ xem xét ba cách để đếm các ký tự lặp lại trong chuỗi python – sử dụng từ điển, sử dụng khả năng hiểu danh sách và sử dụng bộ sưu tập
Cách đếm các ký tự lặp lại trong chuỗi trong Python
Dưới đây là các bước để đếm các ký tự lặp lại trong chuỗi python. Giả sử bạn có một chuỗi tên là 'hello world'
1. Sử dụng từ điển
Trong trường hợp này, chúng tôi bắt đầu một từ điển trống. Sau đó, chúng tôi lặp qua từng ký tự của chuỗi đầu vào. Đối với mỗi ký tự, chúng tôi tăng số lượng cặp khóa-giá trị trong đó khóa là ký tự đã cho. Nếu khóa đã cho không tồn tại thì chúng tôi tạo một cặp khóa-giá trị mới với khóa là ký tự và giá trị là 1. Vì vậy, vào thời điểm bạn đã lặp qua toàn bộ chuỗi, bạn có một từ điển gồm tất cả các bảng chữ cái duy nhất dưới dạng khóa và số lượng của chúng là giá trị. Đây là mã để làm như vậy
#!/usr/bin/env python
input = "hello world"
d = {}
for c in input:
try:
d[c] += 1
except:
d[c] = 1
for k in d.keys():
print "%s: %d" % (k, d[k])
2. Sử dụng Danh sách và Tập hợp
Bạn cũng có thể sử dụng khả năng hiểu Danh sách để lặp qua chuỗi và tạo một tập hợp các bộ trong đó mục đầu tiên là ký tự và mục thứ hai là số lượng của nó. Dưới đây là một ví dụ để tạo một danh sách các ký tự trong chuỗi. Trong cả hai trường hợp sau, hàm set sẽ chuyển đổi chuỗi thành danh sách các ký tự duy nhất của nó, bao gồm cả khoảng trắng
>>> s='hello world'
>>> [(i,s.count(i)) for i in set(s)]
[(' ', 1), ('e', 1), ('d', 1), ('h', 1), ('l', 3), ('o', 2), ('r', 1), ('w', 1)]
Chúng ta cũng có thể làm điều tương tự để tạo một từ điển các cặp khóa-giá trị trong đó các khóa là các ký tự duy nhất và các giá trị là số lượng của chúng trong chuỗi đầu vào
>>> s='hello world'
>>> {i:s.count(i) for i in set(s)}
{' ': 1, 'e': 1, 'd': 1, 'h': 1, 'l': 3, 'o': 2, 'r': 1, 'w': 1}
3. Sử dụng Bộ sưu tập
Các bộ sưu tập là các lớp con dict nhưng khi bạn tìm kiếm một khóa và không tìm thấy nó, các bộ sưu tập sẽ tạo nó cho bạn, với giá trị là 0. Có một số loại bộ sưu tập có sẵn, phổ biến nhất là defaultdict(int) và defaultdict(list) mà bạn không cần viết mã để đặt giá trị mặc định
import collections
input='hello world'
d = collections.defaultdict(int)
for c in input:
d[c] += 1
for c in sorted(d, key=d.get, reverse=True):
print '%s %6d' % (c, d[c])
Trong đoạn mã trên, chúng tôi tạo một bộ sưu tập 'd', tất cả những gì bạn cần làm chỉ đơn giản là lặp qua chuỗi đầu vào của bạn và tăng các giá trị dict có khóa bằng với ký tự đã cho. Khi bạn đã lặp qua toàn bộ chuỗi, bạn sẽ có số lượng tất cả các ký tự duy nhất trong chuỗi, bao gồm cả khoảng trắng
Trong bài viết này, chúng ta đã học được ba cách khác nhau để đếm các ký tự lặp lại trong chuỗi python. Bạn có thể sử dụng bất kỳ trong số chúng theo sự thuận tiện của bạn. Tất cả đều hoạt động tốt ngay cả với các chuỗi lớn. Nói chung, mã này là một phần của chức năng hoặc mô-đun lớn hơn trong ứng dụng hoặc trang web python. Vì vậy, bạn có thể sửa đổi nó theo yêu cầu của bạn