задача со словарями

Victoriia

Новичок
Пользователь
Май 4, 2020
8
0
1
Задание 4. Дана статистика рекламных каналов по объемам продаж. Напишите скрипт, который возвращает название канала с максимальным объемом. Т. е. в данном примере скрипт должен возвращать 'yandex'.
In [8]:
stats = {'facebook': 55, 'yandex': 120, 'vk': 115, 'google': 99, 'email': 42, 'ok': 98}

Задание 5. Напишите код для преобразования произвольного списка вида ['2018-01-01', 'yandex', 'cpc', 100] (он может быть любой длины) в словарь {'2018-01-01': {'yandex': {'cpc': 100}}}
In [ ]:
 
Последнее редактирование:

Vlad_SD

Активный пользователь
Пользователь
Апр 7, 2020
91
45
18
Добрый день, можно получить ключ у максимального значения так:
Код:
stats = {'facebook': 55, 'yandex': 120, 'vk': 115, 'google': 99, 'email': 42, 'ok': 98}
max_val = max(stats.items()) #вернёт и ключ и значение в виде кортежа ('yandex', 120)

print(max_val[0])  # вернёт только yandex
 
  • Мне нравится
Реакции: stud_55

Victoriia

Новичок
Пользователь
Май 4, 2020
8
0
1
Задание 5. Напишите код для преобразования произвольного списка вида ['2018-01-01', 'yandex', 'cpc', 100] (он может быть любой длины) в словарь {'2018-01-01': {'yandex': {'cpc': 100}}}
In [ ]:
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Задание 5. Напишите код для преобразования произвольного списка вида ['2018-01-01', 'yandex', 'cpc', 100] (он может быть любой длины) в словарь {'2018-01-01': {'yandex': {'cpc': 100}}}
In [ ]:
Вот пример:
Python:
x = ['2018-01-01', 'yandex', 'cpc', 100]

y = {x[-2]: x[-1]}
for i in x[:-2][::-1]:
    y = {i: y}
print(y)
 
  • Мне нравится
Реакции: Vlad_SD

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Добрый день, можно получить ключ у максимального значения так:
Код:
stats = {'facebook': 55, 'yandex': 120, 'vk': 115, 'google': 99, 'email': 42, 'ok': 98}
max_val = max(stats.items()) #вернёт и ключ и значение в виде кортежа ('yandex', 120)

print(max_val[0])  # вернёт только yandex
Нашел небольшую ошибку в решении. В данном случае она роли не играет, потому что выдает нужный ответ, но если немного изменить словарь, то будет играть. Функция max в данном примере сортирует словарь по ключу, а должна по значению, для этого ей нужно указать функцию сортировки:

Python:
stats = {'facebook': 155, 'yandex': 120, 'vk': 115, 'google': 99, 'email': 42, 'ok': 98}
max_val = max(stats.items(), key=lambda x: x[1]) # вернёт ('facebook', 155)
print(max_val[0])  # вернёт только facebook
 
  • Мне нравится
Реакции: Victoriia и Vlad_SD

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