Как сделать следующее: password Password pAssword paSsword pasSword passWpord и тд?
Вообщем, как я уже написал в теме вопроса, я хочу чтоб каждая буква по очереди стала заглавной.
У меня были идеи, как сделать это всё, при помощи слайсов и капиталайза, каждый раз при слайсе сохранять в переменную удаленную часть, а после капиталайза просто соединять их обратно. Но что-то пошло не так.
У меня так и не получилось, надеюсь кто-то сможет мне помочь.
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
res = [word] + [word[:i] + word[i:].capitalize() for i in range(1, len(word))]
Результат:
In [108]: res
Out[108]:
['password',
'pAssword',
'paSsword',
'pasSword',
'passWord',
'passwOrd',
'passwoRd',
'passworD']
Автор решения: Came Up
→ Ссылка
Возможный вариант:
word = "password"
result = [word.replace(let, let.upper()) for let in word]
*при таком варианте заменяются все буквы, поэтому он не подходит.
Исправленный вариант:
result = [f"{s[:i]}{s[i].upper()}{s[i+1:]}" for i in range(len(s))]