Словарь: Алфавитные элементы списка и подсчитать его появления - PullRequest
0 голосов
/ 30 мая 2018

Привет, поэтому я пытался подсчитать элементы в списке, который я сделал, и когда я делаю это

Результат должен быть:

a 2 выше 2 через 1и т. д.

вот что у меня есть:

word = []
with open('Lateralus.txt', 'r') as my_file:
    for line in my_file:
       temporary_holder = line.split()
          for i in temporary_holder:
             word.append(i)

for i in range(0,len(word)): word[i] = word[i].lower()    

word.sort()

for count in word:
    if count in word:
       word[count] = word[count] + 1
else:
    word[count] = 1

for  (word,many)  in word.items(): 
    print('{:20}{:1}'.format(word,many))

1 Ответ

0 голосов
/ 30 мая 2018

@ Kimberly , как я понял из вашего кода, вы хотите прочитать текстовый файл буквенных символов.Вы также хотите игнорировать регистры буквенных символов в файле.Наконец, вы хотите сосчитать вхождения каждой уникальной буквы в текстовом файле.

Я предлагаю вам использовать для этого словарь .Я написал пример кода для этой задачи, который удовлетворяет следующим 3 условиям (пожалуйста, прокомментируйте, если вы хотите получить другой результат, предоставив входные данные и ожидаемые результаты, я обновлю свой код на основе этого):

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

  2. Преобразует прописные буквы в строчные.

  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
    }
"""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...