Как вывести в процентном соотношении значения списка?
Есть следующий код:
queries = [
'смотреть сериалы онлайн',
'новости спорта',
'афиша кино',
'курс доллара',
'сериалы этим летом',
'курс по питону',
'сериалы про спорт']
for value in queries:
percent = round(len(queries)/len(value)*100, 1)
word = round(len(value) / len(queries))
print('Поисковых запросов, содержащих', word, 'слов(а):', percent ,'%')
Необходимо, чтобы результат был :
Поисковых запросов, содержащих 2 слов(а): 42.86%
Поисковых запросов, содержащих 3 слов(а): 57.14%.
А выходит:
Поисковых запросов, содержащих 3 слов(а): 30.4 %
Поисковых запросов, содержащих 2 слов(а): 50.0 %
Поисковых запросов, содержащих 1 слов(а): 70.0 %
Поисковых запросов, содержащих 2 слов(а): 58.3 %
Поисковых запросов, содержащих 3 слов(а): 38.9 %
Поисковых запросов, содержащих 2 слов(а): 50.0 %
Поисковых запросов, содержащих 2 слов(а): 41.2 %.
То есть код считает каждую фразу по отношению к общей длине списка.
Как исправить код, чтобы вышло то, что ожидается?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
words = [len(qry.split()) for qry in queries]
for w in sorted(set(words)):
print(f"Поисковых запросов, содержащих {w} слов(а): {words.count(w)/len(queries):.2%}")
вывод:
Поисковых запросов, содержащих 2 слов(а): 42.86%
Поисковых запросов, содержащих 3 слов(а): 57.14%