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, но заменяет его содержимое на обновлённые пары ключ-значение.