Используйте файл в качестве аргумента для функции, которая подсчитывает, создает счет для каждой буквы в текстовом файле -- python поле с участием file поле с участием for-loop поле с участием dictionary пол Связанный проблема

Use a file as an argument for a function that counts creates a count for each letter in a text file


1
vote

проблема

русский

Моя программа прямо сейчас работает только для первого символа в текстовом файле и итерации бесконечно. Например, если первая буква в текстовом файле D, программа возвращает {'d': 1} снова и снова.

Мне нужно, чтобы он продолжал через текстовый файл и подсчитывать каждую букву и в конечном итоге, чтобы перечислить счетчики в снижении порядка.

 <код> def add_or_init(dictionary, c):     if(c in dictionary):             dictionary[c]+=1     else:             dictionary[c]=1 def count_one_letter(dictionary, c, is_letter):     if is_letter(c):             add_or_init(dictionary, c) def count_letters(dictionary, word, is_letter):     f = open('suffix.txt')     for word in f.read().split():         for c in word:             count_one_letter(dictionary, c, is_letter)             return dictionary f = open('suffix.txt') for word in f.read().split(): t=len(word) while True:     print(count_letters(dict(),word,lambda x: True))   
Английский оригинал

My program right now works for only the first character in the text file, and iterates infinitely. For example if the first letter in the text file is d, the program returns {'d': 1} over and over again.

I need it to continue through the text file and count each letter and ultimately to list the letter counts in decreasing order.

def add_or_init(dictionary, c):     if(c in dictionary):             dictionary[c]+=1     else:             dictionary[c]=1 def count_one_letter(dictionary, c, is_letter):     if is_letter(c):             add_or_init(dictionary, c) def count_letters(dictionary, word, is_letter):     f = open('suffix.txt')     for word in f.read().split():         for c in word:             count_one_letter(dictionary, c, is_letter)             return dictionary f = open('suffix.txt') for word in f.read().split(): t=len(word) while True:     print(count_letters(dict(),word,lambda x: True)) 
</div
           

Список ответов

1
 
vote

Если вы можете использовать <код> Counter из <код> collections

 <код> from collections import defaultdict, Counter with open('filename.txt') as f:     text = f.read()     letter_count = Counter(c for c in text if c.isalpha())   

Затем для печати в порядке уменьшения:

 <код> print(letter_count.most_common())   
 

If you can, use Counter from collections

from collections import defaultdict, Counter with open('filename.txt') as f:     text = f.read()     letter_count = Counter(c for c in text if c.isalpha()) 

Then to print in decreasing order:

print(letter_count.most_common()) 
</div
 
 
     
     

Связанный проблема

0  Jupyter-Notebook не работает после команды Jupyter-Notebook  ( Jupyter notebook is not working after jupyter notebook command ) 
Я устанавливаю Jupyter-ноутбук для работы с проектами, связанными с наукой на науке. Я не могу установить его должным образом или есть некоторая проблема с со...

0  Групповые пакеты на сервере трафика  ( Timing packets on a traffic server ) 
У меня есть прокси-сервер трафика, который является дополнительным ходом на сеть и обрабатывает большое количество трафика. Я хотел бы рассчитать стоимость ...

2  Loop Проблемы рок-бумаги Ножницы ножницы  ( Loop problems rock paper scissors game ) 
Я очень новый для программирования. Я должен написать ножницы для рок-бумаги для моего вступления в класс программирования. У меня есть отличное начало, но не...

2  Pyproj Пакет Установка Proj_dir Переменная  ( Pyproj package installation proj dir variable ) 
Я пытаюсь установить <код> pyproj , хотя получаю <код> Proj executable not found. Please set PROJ_DIR variable ошибки. Команда <Код> $ pipenv install pyp...

0  Ubuntu Supervisor Импорт модулей Python модулей  ( Ubuntu supervisor import python modules error ) 
Я использую супервизор для запуска Websocket Django в системе запуска. Когда я запускаю руководитель, он будет поднять ModulenotfoundError: Нет модуля с ...

0  Расстояние косинуса между редкими матрицами  ( Cosine distance between sparse matrices ) 
Я пытаюсь понять, как использовать <код> csr_matrix API вместе с его <код> cosine функционал, и я работаю в <код> dimension mismatch , У меня есть следую...

3  Как заменить символ в строке с символом не ASCII в Python?  ( How to replace a character in a string with a non ascii character in python ) 
Я хочу заменить знак номера (#) символом, аналогичным тому, что называется резким знаком музыки (♯). Я попробовал следующую линию, но не работал. <код> res[...

15  Пип не работает  ( Pip not working ) 
Я пытаюсь установить Python-Shavely с Pip в Ubuntu 10.04. Я получил «неизвестную или неподдерживаемую команду» «Установить», пока я попробовал, <Код> Allian...

0  Как нарисовать случайный треугольник и его медиану? [закрыто]  ( How to draw a random triangle and its median ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> закрыто. Этот вопрос нуждается в Детали отладки . В настоящее вр...

0  Как добавить номер в каждом базовом случае рекурсии? (Python3)?  ( How to add number in each base case of recursionpython3 ) 
Я хочу добавить 1 на <код> ans После того, как рекурсионная ветка достигает того, где <код> n==0 но не удается. Я пытался присвоить <код> ans сначала и д...

5  Экспорт SVG в PDF в автономном TideSDK WebApp  ( Exporting svg to pdf in a offline tidesdk webapp ) 
У меня есть приложение Offline HTML5 / CSS / JS, построенное с TIDESDK, в котором гистограмма нарисована с HighCharts в качестве SVG «Tag», используя данные, ...

0  Почему Python поднимает ошибку времени выполнения во время работы numpy.percentile для выравнивания Scikit-Image?  ( Why python raise a runtime error while i run numpy percentile for equalization b ) 
Я беру код выравнивания из Здесь <код> import numpy as np from skimage import morphology from skimage import color from skimage import io from matplotlib ...

2  Django Allauth - без проверки электронной почты для социальных пользователей  ( Django allauth no verification email for social users ) 
Я использую Django Allauth для потребностей Auth My Webse. Когда пользователь подписывает на мой сайт с социальной учетной записью - Google в основном (у ме...

48  Ошибка auth_user с django 1.8 и syncdb / migrate  ( Auth user error with django 1 8 and syncdb migrate ) 
При обновлении в Django 1.8 (с zc.buildout) и запуском SyncDB или миграция, я получаю это сообщение: <Код> django.db.utils.ProgrammingError: relation "auth_...

0  Использование Pybind11 на MacBook Pro  ( Using pybind11 on macbook pro ) 
Я пытаюсь использовать Pybind11 на MacBook, и я пытаюсь сделать так, как было написано в https://pybind11.readtheDocs.io/en/stable/basics.html я установил C...