У меня проблема с моей программой на Python. Я пытаюсь составить счетчик слов, упражнение из Упражнение .
Теперь моя программа должна пройти 13 тестов, каждый из которых представляет собой разные строки с пробелами, символами, цифрами и т. Д.
Раньше у меня была проблема, потому что я заменял все не буквы и не цифры на пробел. Это создало проблему для слов типа "don't"
, потому что это разделило бы его на две строки, don
и t
. Чтобы противостоять этому, я добавил оператор if
, исключающий замену одиночных отметок '
, что сработало.
Однако, одна из строк, которую я должен проверить, это "Joe can't tell between 'large' and large."
. Проблема в том, что, поскольку я исключаю '
рынки, здесь large
и 'large'
рассматриваются как две разные вещи, а также одно и то же слово. Как мне сказать моей программе «стереть» кавычки , окружающие слово?
Вот мой код, и я добавил два сценария, один из которых является строкой выше, а другой - другой строкой только с одной '
отметкой, которую не следует удалять:
def word_count(phrase):
count = {}
for c in phrase:
if not c.isalpha() and not c.isdigit() and c != "'":
phrase = phrase.replace(c, " ")
for word in phrase.lower().split():
if word not in count:
count[word] = 1
else:
count[word] += 1
return count
print(word_count("Joe can't tell between 'large' and large."))
print(word_count("Don't delete that single quote!"))
Спасибо за вашу помощь.