Как поменять местами ключ и значение в словаре?

Имеется словарь вида:

dict = {'a':'abc', 'b':'def', 'c':'ghi'}

Необходимо с помощью функции поменять местами ключ и значение у определенной пары. нашел решение только для смены местами всех ключей и значений:

def reverse(k, v):
    for k, v in dict.items():
        dict[v] = k
reverse("b", "def")
print(dictionary)

Получаю такую ошибку: RuntimeError: dictionary changed size during iteration


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

Автор решения: inquirer
dict1 = {'a':'abc', 'b':'def', 'c':'ghi'}
dict2 = {v: k for k, v in dict1.items()}
print(dict2)

Можно даже так:

dict1 = {'a':'abc', 'b':'def', 'c':'ghi'}
dict1 = {v: k for k, v in dict1.items()}
print(dict1)
→ Ссылка