Почему при пустом словаре выходит ошибка KeyError: 2?

def update_dictionary(d, key, value):
    if key in d:
        d[key] += [value]
    else:
        d[key * 2] += [value]


d = {}
(update_dictionary(d, 1, -1))
print(d)

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

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

Потому что, для оператора += нужно взять значение из словаря, чтобы произвести сложение в:

d[key * 2] += [value]

Т.е. оно на самом деле будет выглядеть примерно так:

d[key * 2] = d[key * 2] + [value]

Думаю, нужно просто присвоить по ключу:

d[key * 2] = [value]
→ Ссылка