Как сделать словарь со словами с количеством их гласных звуков из текста?
text = "These people had a little window at the back of their house from which a splendid garden could be seen, which was full of the most beautiful flowers and herbs. It was, however, surrounded by a high wal."
t = text.replace(',', '')
#print(t)
print(max(t.split(), key=len))
print(min(t.split(), key=len))
print(collections.Counter(text.split()).most_common(1))
ma_dict = {}
for word in text.split():
ma_dict[word] = ma_dict.get(word,0)+1
print(ma_dict)
Ответы (2 шт):
Автор решения: Вадим Александру
→ Ссылка
text = "These people had a little window"
def vowelCounter(listName):
vowels = 'aeiouAEIOU'
count = 0
for i in range(0, len(listName)):
if listName[i] in vowels: count += 1
return count
result = {}
if __name__ == '__main__':
words = text.split(" ")
for word in words:
result[word] = vowelCounter(word)
print(result)
Автор решения: RomanR
→ Ссылка
Ваш словарь уже содержит список слов в предложении. Правда последнее добавляется с точкой. Если нужно просто посчитать глассные в этих словах, то нужно добавить функцию ниже и вызвать ее. Или нужно что-то еще?
def vowelsearch(myDict):
vowels = 'aeiouAEIOU' #список гласных
for word in myDict: # для всех слов в словаре
counter = 0 # обнуляем счетчик
for letter in vowels: # для всех гласных
counter += word.count(letter) # проверяем сколько раз буква встречается в слове и прибавляем к счетчику
myDict[word] = counter # заменяем значение в словаре
return myDict
newDict = vowelsearch(ma_dict) #вызываем функцию и передаем в нее наш словарь со словами. Она возвращает нам нужный словарь
Для согласных:
def consonantsSearch(myDict):
consonants = 'bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ'
for word in myDict:
counter = 0
for letter in consonants:
counter += word.count(letter)
myDict[word] = counter
return myDict
consonantsDict = consonantsSearch(ma_dict)