Главная страница » Подсчет символов в строке python

Подсчет символов в строке python

В Python есть несколько простых и эффективных способов подсчета символов в строке. Выбор метода зависит от того, что именно вам нужно подсчитать:

Общее количество символов (длина строки): Количество вхождений конкретного символа/подстроки: Количество вхождений каждого уникального символа: Количество символов определенного типа (буквы, цифры, заглавные и т. д.):

1. Общее количество символов (длина строки)

Для этого используется встроенная функция len(). Она вернет количество символов в строке, включая пробелы и специальные символы.

Python

My_string = "Привет, мир! 123"

Length = len(my_string)

Print(f"Длина строки ‘{my_string}’: {length}") # Вывод: Длина строки ‘Привет, мир! 123’: 16

Empty_string = ""

Print(f"Длина пустой строки: {len(empty_string)}") # Вывод: Длина пустой строки: 0

2. Количество вхождений конкретного символа/подстроки

Для этого используется метод строки str. count().

Python

My_string = "Бананы, яблоки и апельсины. Бананы вкусные."

# Подсчет вхождений символа

Count_a = my_string. count(‘а’)

Print(f"Количество ‘а’: {count_a}") # Вывод: Количество ‘а’: 5 (учитывает только строчные)

# Подсчет вхождений подстроки

Count_banana = my_string. count("Бананы")

Print(f"Количество ‘Бананы’: {count_banana}") # Вывод: Количество ‘Бананы’: 2

# Регистр имеет значение

Count_A_case_sensitive = my_string. count(‘А’)

Print(f"Количество ‘А’: {count_A_case_sensitive}") # Вывод: Количество ‘А’: 1

# Чтобы игнорировать регистр, можно привести всю строку к одному регистру

Count_a_case_insensitive = my_string. lower().count(‘а’)

Print(f"Количество ‘а’ (без учета регистра): {count_a_case_insensitive}") # Вывод: Количество ‘а’ (без учета регистра): 6

3. Количество вхождений каждого уникального символа

Для этой задачи лучше всего использовать collections. Counter или обычный словарь.

A) Использование Collections. Counter (рекомендуется)

Collections. Counter — это подкласс словаря, специально разработанный для подсчета хешируемых объектов.

Python

From collections import Counter

My_string = "Hello World!"

Char_counts = Counter(my_string)

Print(f"Количество каждого символа (Counter): {char_counts}")

# Вывод: Количество каждого символа (Counter): Counter({‘l’: 3, ‘o’: 2, ‘H’: 1, ‘e’: 1, ‘ ‘: 1, ‘W’: 1, ‘r’: 1, ‘d’: 1, ‘!’: 1})

# Доступ к счетчику для конкретного символа

Print(f"Количество ‘l’: {char_counts[‘l’]}") # Вывод: Количество ‘l’: 3

Print(f"Количество ‘z’: {char_counts[‘z’]}") # Вывод: Количество ‘z’: 0 (не вызывает ошибку, если символа нет)

B) Использование обычного словаря

Вы можете реализовать тот же функционал вручную с помощью словаря.

Python

My_string = "Programming"

Char_counts_dict = {}

For char in my_string:

char_counts_dict[char] = char_counts_dict. get(char, 0) + 1

Print(f"Количество каждого символа (словарь): {char_counts_dict}")

# Вывод: Количество каждого символа (словарь): {‘P’: 1, ‘r’: 2, ‘o’: 1, ‘g’: 2, ‘a’: 1, ‘m’: 2, ‘i’: 1, ‘n’: 1}

4. Количество символов определенного типа (буквы, цифры, заглавные и т. д.)

Для этого можно итерировать по символам строки и использовать встроенные методы символов (isalpha(), isdigit(), islower(), isupper(), isspace()).

Python

My_string = "Python 3.10 is awesome!."

# Подсчет букв

Alpha_count = sum(1 for char in my_string if char. isalpha())

Print(f"Количество букв: {alpha_count}") # Вывод: Количество букв: 19

# Подсчет цифр

Digit_count = sum(1 for char in my_string if char. isdigit())

Print(f"Количество цифр: {digit_count}") # Вывод: Количество цифр: 3

# Подсчет пробелов

Space_count = sum(1 for char in my_string if char. isspace())

Print(f"Количество пробелов: {space_count}") # Вывод: Количество пробелов: 4

# Подсчет заглавных букв

Upper_count = sum(1 for char in my_string if char. isupper())

Print(f"Количество заглавных букв: {upper_count}") # Вывод: Количество заглавных букв: 1

# Подсчет строчных букв

Lower_count = sum(1 for char in my_string if char. islower())

Print(f"Количество строчных букв: {lower_count}") # Вывод: Количество строчных букв: 18

# Комбинированный подсчет

Counts = {

"letters": 0,

"digits": 0,

"spaces": 0,

"others": 0

}

For char in my_string:

if char. isalpha():

counts["letters"] += 1

elif char. isdigit():

counts["digits"] += 1

elif char. isspace():

counts["spaces"] += 1

else:

counts["others"] += 1

Print(f"Комбинированный подсчет: {counts}")

# Вывод: Комбинированный подсчет: {‘letters’: 19, ‘digits’: 3, ‘spaces’: 4, ‘others’: 2} (‘.’ и ‘!’)

Выбирайте метод, который наиболее точно соответствует вашей задаче подсчета символов. Для общего подсчета длины — len(), для конкретного символа — str. count(), для всех уникальных символов — collections. Counter, а для символов по типу — итерация с методами str. isalpha(), str. isdigit() и т. д.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх