Ответ @Harun, вероятно, здесь лучший, но в качестве альтернативы и более общего ответа мы можем рассмотреть возможность использования re.sub
с функцией обратного вызова:
data = ['VARMA', 'raj', 'Gupta', 'SaNdeeP']
capitalized = [re.sub(r'^(.)(.*)$', lambda m: m.group(1).upper() + m.group(2).lower(), a)
for a in data]
print(capitalized)
Это напечатает:
['Varma', 'Raj', 'Gupta', 'Sandeep']