@ Kimberly , как я понял из вашего кода, вы хотите прочитать текстовый файл буквенных символов.Вы также хотите игнорировать регистры буквенных символов в файле.Наконец, вы хотите сосчитать вхождения каждой уникальной буквы в текстовом файле.
Я предлагаю вам использовать для этого словарь .Я написал пример кода для этой задачи, который удовлетворяет следующим 3 условиям (пожалуйста, прокомментируйте, если вы хотите получить другой результат, предоставив входные данные и ожидаемые результаты, я обновлю свой код на основе этого):
Считывает текстовый файл и создает одну строку текста, удаляя все пробелы между ними.
Преобразует прописные буквы в строчные.
Наконец, он создает словарь, содержащий уникальные буквы с их частотами.
"Lateralus.txt
abcdefghijK
ABCDEfgkjHI
IhDcabEfGKJ
mkmkmkmkmoo
pkdpkdpkdAB
A B C D F Q
ab abc ab c
" Код
import json
char_occurences = {}
with open('Lateralus.txt', 'r') as file:
all_lines_combined = ''.join([line.replace(' ', '').strip().lower() for line in file.readlines()])
print all_lines_combined # abcdefghijkabcdefgkjhiihdcabefgkjmkmkmkmkmoopkdpkdpkdababcdfqababcabc
print len(all_lines_combined) # 69 (7 lines of 11 characters, 8 spaces => 77-8 = 69)
while all_lines_combined:
ch = all_lines_combined[0]
char_occurences[ch] = all_lines_combined.count(ch)
all_lines_combined = all_lines_combined.replace(ch, '')
# Pretty printing char_occurences dictionary containing occurences of
# alphabetic characters in a text file
print json.dumps(char_occurences, indent=4)
"""
{
"a": 8,
"c": 6,
"b": 8,
"e": 3,
"d": 7,
"g": 3,
"f": 4,
"i": 3,
"h": 3,
"k": 10,
"j": 3,
"m": 5,
"o": 2,
"q": 1,
"p": 3
}
"""