Код Junior Производительность и память обновлено
Скидка по категории через map
Условие
Дан список товаров [sku, category, price] и словарь скидок {category: доля} (0.1 = 10%). Верните [[sku, итоговая цена], ...] в исходном порядке, цена round(..., 2). Если категории нет в словаре, скидка 0. Без apply и циклов по строкам.
Примеры
apply_discounts([["a1", "food", 100], ["b2", "toys", 200], ["c3", "misc", 50]], {"food":0.1,"toys":0.25}) // [["a1", 90], ["b2", 150], ["c3", 50]]
apply_discounts([["x", "food", 9.99]], {}) // [["x", 9.99]]
apply_discounts([["x", "food", 10]], {"food":1}) // [["x", 0]]
Как подойти
Подсказки: 1
df["category"].map(discounts).fillna(0)
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Производительность и память»
- Чем заменить apply(axis=1)
- Когда помогает тип category
- Цепочное присваивание в pandas 3.0
- Ужать DataFrame: category и downcast
- category теряется при concat
- Copy-on-Write в pandas 3.0
- Copy-on-Write: изменение колонки
- Copy-on-Write и SettingWithCopyWarning