Найти в файле самую редкую букву (буква которая встречается меньше всего в тексте)
from collections import Counter
inp = 'zen.txt'
letters = 0
words = 0
lines = 0
for line in open(inp):
lines += 1
letters += len(line)
pos = 'out'
for letter in line:
if letter != ' ' and pos == 'out':
words += 1
pos = 'in'
elif letter == ' ':
pos = 'out'
rare_letter = Counter(str(letters))
rare_letter = min(rare_letter, key=rare_letter.get)
print(f'Количество букв в файле: {letters}')
print(f'Количество слов в файле: {words}')
print(f'Количество строк в файле: {lines}')
print(f'Наиболее редкая буква: {rare_letter}')
Помогите разобраться. Не могу добиться правильного результата о поиске наиболее редкой буквы в тексте. inp = 'zen.txt' входные данные - текстовый документ с текстом.
Ответы (1 шт):
Автор решения: zomaman
→ Ссылка
Почему не ищется самая редкая буква? Вы берёте переменную letters, которая содержит число (а не символы) и метод Counter ищет самую редкую цифру из этого числа. Благодаря подсказке @insolor я подправил ваш код.
for line in open(inp):
lines += 1
letters += len(line)
words += len(line.split()) # Упрощённый подсчёт слов
with open(inp) as file:
counter = Counter(file.read()) # Самая редкая буква учитывая регистр
# counter = Counter(file.read().lower()) # Без учёта регистра
rare_letter = min(counter, key=counter.get)