Изменить регистр конкретной буквы текста в Python

Пытаюсь изменить регистр определенных букв в строке. Как это можно написать с помощью функции?

Пример: 'macdonald', пытаюсь изменить на 'MacDonald'.


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

Автор решения: Sergey Gornostaev
def change_case(s, positions=tuple()):
    return ''.join(c.upper() if n in positions else c for n, c in enumerate(s))


r = change_case('macdonald', (0, 3))
print(r)
→ Ссылка
Автор решения: insolor

Как вариант, через промежуточное представление в виде списка:

text = 'macdonald'
characters = list(text)
characters[0] = characters[0].upper()                                       
characters[3] = characters[3].upper()                                       
new_text = ''.join(characters)
print(new_text)

Вывод:

MacDonald
→ Ссылка