#python-3.x #list #dictionary
#python-3.x #Список #словарь
Вопрос:
«‘ def freq(str):
# break the string into list of words
str = str.lower().split()
str2 = []
# loop till string values present in list str
for i in str:
# checking for the duplicacy
if i not in str2:
# insert value in str2
str2.append(i)
for i in range(0, len(str2)):
# count the frequency of each word(present
# in str2) in str and print
print('Frequency of', str2[i], 'is :', str.count(str2[i]))
print(str(list))
»’
прямо сейчас результатом для freq (‘Ад — это ад’) является частота ада: 2 Частота is : 1
как отобразить результат в формате словаря, например: (‘hell: 2′,’is: 1’)
Комментарии:
Ответ №1:
Опубликованный вами код кажется мне ошибочным. Зачем вам проверять наличие дубликатов, если вам нужно подсчитать все слова и в чем польза str2
. Опять же, вы проверяете количество, в str2
котором нет повторяющихся слов, оно будет считать как 1 для каждого слова.
Вы можете попробовать следующий код для получения желаемого результата:
def freq(str1):
str1 = str1.lower().split()
result = dict()
for word in str1:
result[word] = str1.count(word)
return result
PS: Не рекомендуется использовать ключевые слова в качестве переменных в вашем коде, str
это встроенный класс.
Комментарии:
1. Спасибо вам, сэр, за очень простое и четкое решение. Обязательно буду работать над улучшением моих методов кодирования