Нужна помощь в решении задачи на 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 шт):

Автор решения: Ghost

Ошибка KeyError возникает, когда ключ набора (словаря) не найден в наборе существующих ключей.

Ошибка возникает в этой строке count[price // 3 * 4] -= 1

→ Ссылка