Нужна помощь в решении задачи на python!
Дана задача:
В магазине проходит новогодняя распродажа – цены всех товаров снижены на 25%. Оказалось, что первоначально все цены делились на 4, поэтому после снижения цен все цены также выражаются целым числом. Товаровед вечером перед распродажей снял ценники со всех товаров и напечатал для каждого товара ещё один ценник со сниженной ценой. Он оставил все ценники на столе, рассчитывая утром их развесить. Но, придя утром в магазин, он обнаружил, что уборщица смешала все ценники вместе, и теперь ему нужно отделить старые ценники от новых.
Код на python:
n = int(input())
prices = [int(input()) for i in range(n)]
count = dict()
for price in prices:
if price in count:
count[price] += 1
else:
count[price] = 1
for price in prices:
if count[price] > 0:
print(price)
count[price] -= 1
count[price // 3 * 4] -= 1
Входные данные: 6 30 40 42 45 56 60
На выходе: 30 42 45
Но к сожалению он выдает ошибку "KeyError: 4". Помогите понять, почему?
Ответы (1 шт):
Ошибка KeyError возникает, когда ключ набора (словаря) не найден в наборе существующих ключей.
Ошибка возникает в этой строке
count[price // 3 * 4] -= 1