Пожалуйста, проверьте это решение. Здесь я заменяю только точное совпадение слова, то есть «Алекс», на «Адам». Итак, «Алекс» изменится на «Адам», но «Александр» не изменится на «Адамандер».
import re
def conversion(li, original, target):
emp_str = []
for index, each in enumerate(li):
sub_str = re.sub(r'(?<![\w\d])%s(?![\w\d])' % original, target, each)
final_str = sub_str.swapcase() if index % 2 != 0 else sub_str
emp_str.append(final_str)
return emp_str
list1=['Alex and John', 'Alex and Adam and Alexander', 'Adam has a dog', 'YEllow car']
original1='Alex'
target1='Adam'
result=conversion(list1, original1, target1)
print(result)
Мой вывод: [' Адам и Джон', ' АДАМ И АДАМ И АЛЕКСАНДР ',' У Адама есть собака ',' ЖЕЛТЫЙ АВТОМОБИЛЬ ']
Здесь АЛЕКСАНДР не изменится на АДАМАНДР потому что мы подбираем точное слово «Алекс».