Код Python для удаления пунктуации из словаря неправильно функционируетPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Код Python для удаления пунктуации из словаря неправильно функционирует

Сообщение Anonymous »

Я уже повернул в этом задании, но оно сводит меня с ума. Нам дали метод лишения пунктуации из словаря с использованием цикла «для» с этим примером: < /p>
import string​

quote = " The joy of coding Python should be in seeing short, concise, readable classes that express " \​
"a lot of action in a small amount of clear code -- not in reams of trivial code that bores the " \​
"reader to death. "​

print(quote)​
word_list = quote.split()​
for word in word_list:​
word = word.strip(string.punctuation)​
print(word)
< /code>
Наше назначение на неделю состояло в том, чтобы взять с собой адрес Геттисберга, сохраненный в виде файла .txt, и создать словарь, который имеет количество того, сколько раз появляются все слова. Моя первая попытка я сделал это: < /p>
import string

def word_counter(speech, word_dictionary):
for word in speech:
if word in word_dictionary:
word_dictionary[word] += 1
else:
word_dictionary[word] = 1

def process_line(word_list, word_dictionary):
##split speech into list of words
words_split = word_list.split()
##remove puncation from list
for word in words_split:
word = word.strip(string.punctuation)
else:
word_counter(word, word_dictionary)
# Printing extra Values
pretty_print(word_dictionary)

def pretty_print(word_dictionary):\
##clean up values that shouldn't be there
##word_dictionary.pop("")
##word_dictionary.pop("19")
##word_dictionary.pop("1863")
##word_dictionary.pop("Abraham")
##word_dictionary.pop("Lincoln")
##Calculating how many words are in the dictionary
word_count_sum = len(word_dictionary.items())
print("Length of dictionary: ", word_count_sum)
for key, value in sorted(word_dictionary.items(), key=lambda kv: kv[1], reverse=True):
print("%s: %s" % (key, value))

def main():
##creating empty dictionary
word_count_dict = {}
##uploading file
gba_file = open('gettysburg.txt','r')
data = gba_file.read()
process_line(data,word_count_dict)

if __name__ == '__main__':
main()
< /code>
То, что происходит с этим, единственные записи в словаре - 1,9,8,3. Я сделал заявление о печати, и он проходит через всю петлю. Он также проходит через весь список после раскола. Я смог завершить задание с помощью: < /p>
for word in words_split:
for character in word:
if character in string.punctuation:
word = word.replace(character,"")
input_list.append(word)
< /code>
Но я пытаюсь учиться, поэтому я хочу знать, что я делаю не так. Кто -нибудь может помочь? Извините за длительный пост и дайте мне знать, если вам нужен файл .txt для решения этого.

Подробнее здесь: https://stackoverflow.com/questions/753 ... -correctly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Есть ли у Python встроить проверку строк для специальных символов и/или пунктуации?
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Разделить строку на символы пунктуации, не теряя символы [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Лемма о пунктуации в пространстве
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Лемма о пунктуации в пространстве
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Вставьте пространство между каждой знакой пунктуации
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»