Напишите функцию update_dictionary( d, key, value ), которая принимает на вход словарь d и два числа: key и value

Если ключ key есть в словаре d, то добавьте значение value в список, который хранится по этому ключу. Если ключа key нет в словаре, то нужно добавить значение в список по ключу 2 * key. Если и ключа 2 * key нет, то нужно добавить ключ 2 * key в словарь и сопоставить ему список из переданного элемента [value]

Пример работы функции:

d = {}
print(update_dictionary(d, 1, -1))  # None
print(d)                            # {2: [-1]}
update_dictionary(d, 2, -2)
print(d)                            # {2: [-1, -2]}
update_dictionary(d, 1, -3)
print(d)                            # {2: [-1, -2, -3]}

Я попытался написать вот так, но ответ неверный :((

d = {}
def update_dictionary(d, key, value):
    if key * 2 in d:
        d[key * 2].append(value)
    else:
        if key in d:
            d[key].append(value)
        else:
            d[key] = [value]
update_dictionary(d, 2, -2)
print(d)

Ответы (1 шт):

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

Я нашел уже свою ошибку, надо было сначала проверить обычный ключ и добавлять не в него, а в ключ * 2:

def update_dictionary(d, key, value):
    if key in d:
        d[key].append(value)
    else:
        if key * 2 in d:
            d[key * 2].append(value)
        else:
            d[key * 2] = [value]
→ Ссылка