Замена цифры в ключах словаря

36. Замена цифры в ключах словаря

Условие задачи:
Дан словарь. Нужно пройти по его ключам, найти в каждом ключе все вхождения цифры 2 и заменить их на 3, сохранив соответствующие значения.

dict1 = {'fy2yy1': 45, 'gh12h2hh': 98, 'b1r22rr3n2': 12}
Спойлеры к решению
Подсказки
  • Ключ словаря нельзя изменить напрямую.
  • Нужно создать новый ключ на основе старого.
  • Для замены всех вхождений цифры "2" на "3" удобно использовать метод .replace().
  • Значение нужно оставить тем же самым.
  • Самый простой вариант — собрать новый словарь через dict comprehension.
Решение
dict1 = {
    "fy2yy1": 45,
    "gh12h2hh": 98,
    "b1r22rr3n2": 12
}

result = {
    key.replace("2", "3"): value
    for key, value in dict1.items()
}

print(result)

Результат:

{'fy3yy1': 45, 'gh13h3hh': 98, 'b1r33rr3n3': 12}

Метод:

key.replace("2", "3")

заменяет все вхождения символа "2" в ключе на символ "3". Значение при этом не меняется и переносится в новый словарь.

Если нужно изменить именно исходный словарь, можно сделать так:

dict1 = {
    "fy2yy1": 45,
    "gh12h2hh": 98,
    "b1r22rr3n2": 12
}

updated = {
    key.replace("2", "3"): value
    for key, value in dict1.items()
}

dict1.clear()
dict1.update(updated)

print(dict1)

Результат:

{'fy3yy1': 45, 'gh13h3hh': 98, 'b1r33rr3n3': 12}

Второй вариант сохраняет сам объект словаря dict1, но заменяет его содержимое на обновлённые пары ключ-значение.