Дан список поисковых запросов. Получить распределение количества слов в них. Т. е. поисковых запросов из одного - слова 5%, из двух - 7%, из трех - 3%

Tita

Новичок
Пользователь
Авг 2, 2020
5
1
3
Всем привет, я столкнулся с определёнными трудностями при решении следующей задачи:
Дан список поисковых запросов. Получить распределение количества слов в них. Т. е. поисковых запросов из одного - слова 5%, из двух - 7%, из трех - 3% и т.д.

Python:
queries = [
    'смотреть сериалы онлайн',
    'новости спорта',
    'афиша кино',
    'курс доллара',
    'сериалы этим летом',
    'курс по питону',
    'сериалы про спорт',
]

# моё решение:
sum_1_word = 0
sum_2_words = 0
sum_3_words = 0

for words_qnty in queries:
    if len(words_qnty.split()) == 1:
        sum_1_word += 1
    elif len(words_qnty.split()) == 2:
        sum_2_words += 1
    else:
        sum_3_words += 1

total_summ = sum_1_word + sum_2_words + sum_3_words
      
print('Поисковых запросов из одного слова: ', round((sum_1_word / total_summ)*100, 2), '%')
print('Поисковых запросов из двух слов: ', round((sum_2_words / total_summ)*100, 2), '%')
print('Поисковых запросов из трех слов: ', round((sum_3_words / total_summ)*100, 2), '%')

Я не могу додумать программу , если число поисковых запросов будет свыше трёх слов.
ПОМОГИТЕ))
 
Последнее редактирование модератором:
  • Мне нравится
Реакции: Student

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Вот универсальный код, можете сколько угодно запросов в него вставить.

Python:
queries = [
    'смотреть сериалы онлайн',
    'новости спорта',
    'афиша кино',
    'курс доллара',
    'сериалы этим летом',
    'курс по питону',
    'сериалы про спорт',
    'тест тест тест тест'
]

storage = {}

for query in queries:
    words = query.split()

    if len(words) in storage.keys():
        storage[len(words)] += 1
    else:
        storage.update({
            len(words): 1
        })

for key, value in storage.items():
    percentage = round((value / len(queries)) * 100, 2)
    print(f'Поисковых запросов из {key} слова: {percentage}% ({value} запр.)')
 

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
@alext не ну это не серьезно) в программировании нужно все автоматизировать, чтобы подстраиваться автоматически под динамичное кол-во данных.
 
  • Мне нравится
Реакции: alext

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
print('Поисковых запросов из четырех слов: ', round((sum_4_words / total_summ)*100, 2), '%')
print('Поисковых запросов из пяти слов: ', round((sum_5_words / total_summ)*100, 2), '%')

и так далее.
 
  • Мне нравится
  • Ха-ха!
Реакции: Tita и Student

Tita

Новичок
Пользователь
Авг 2, 2020
5
1
3
print('Поисковых запросов из четырех слов: ', round((sum_4_words / total_summ)*100, 2), '%')
print('Поисковых запросов из пяти слов: ', round((sum_5_words / total_summ)*100, 2), '%')

и так далее.
Очень смешно:ROFLMAO:
 

Tita

Новичок
Пользователь
Авг 2, 2020
5
1
3
Вот универсальный код, можете сколько угодно запросов в него вставить.

Python:
queries = [
    'смотреть сериалы онлайн',
    'новости спорта',
    'афиша кино',
    'курс доллара',
    'сериалы этим летом',
    'курс по питону',
    'сериалы про спорт',
    'тест тест тест тест'
]

storage = {}

for query in queries:
    words = query.split()

    if len(words) in storage.keys():
        storage[len(words)] += 1
    else:
        storage.update({
            len(words): 1
        })

for key, value in storage.items():
    percentage = round((value / len(queries)) * 100, 2)
    print(f'Поисковых запросов из {key} слова: {percentage}% ({value} запр.)')
Супер!!! Огромное спасибо!!!
 

Mari8766543

Новичок
Пользователь
Дек 13, 2021
1
0
1
Вот универсальный код, можете сколько угодно запросов в него вставить.

Python:
queries = [
    'смотреть сериалы онлайн',
    'новости спорта',
    'афиша кино',
    'курс доллара',
    'сериалы этим летом',
    'курс по питону',
    'сериалы про спорт',
    'тест тест тест тест'
]

storage = {}

for query in queries:
    words = query.split()

    if len(words) in storage.keys():
        storage[len(words)] += 1
    else:
        storage.update({
            len(words): 1
        })

for key, value in storage.items():
    percentage = round((value / len(queries)) * 100, 2)
    print(f'Поисковых запросов из {key} слова: {percentage}% ({value} запр.)')
Здравствуйте! А можно пояснение к коду?
 

Форум IT Специалистов