import re
def change_format(v):
if v.lower() == v:
return ''.join(map(lambda z: z.title(), v.split('_')))
else:
return '_'.join(map(lambda z: z.lower(), re.findall(r'[A-Z][a-z]*', v)))
Вместо регулярки можешь написать конечный автомат, мне на телефоне неудобно