Đếm các ký tự lặp lại nhiều nhất trong một chuỗi python

Khi được yêu cầu tìm ký tự thường xuyên nhất trong một chuỗi, một từ điển trống sẽ được tạo và các phần tử trong chuỗi được lặp lại. Khi một ký tự được tìm thấy trong từ điển, nó sẽ tăng lên, nếu không nó sẽ được gán cho 1. Đã tìm thấy giá trị tối đa trong từ điển và được gán cho một biến

Ví dụ

Dưới đây là một minh chứng tương tự

my_string = "Python-Interpreter"

print ("The string is : ")
print(my_string)

max_frequency = {}
for i in my_string:
   if i in max_frequency:
      max_frequency[i] += 1
   else:
      max_frequency[i] = 1
my_result = max(max_frequency, key = max_frequency.get)

print ("The maximum of all characters is : ")
print(my_result)

đầu ra

The string is :
Python-Interpreter
The maximum of all characters in Python-Interpreter is :
e

Giải trình

  • Một chuỗi được xác định và được hiển thị trên bảng điều khiển

  • Từ điển trống được tạo

  • 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

    1. Bằng cách sử dụng các khóa trong từ điển và phương thức max()
    2. 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