Регулярное выражение будет выполнять эту работу, ища либо начало строки, либо символ подчеркивания перед вашим шаблоном:
>>> import re
>>> key = 'a-1_tea-1'
>>> re.sub(r'(?:^|(?<=_))a-1', 'a-2', key)
'a-2_tea-1'
>>> key = 'tea-1_a-1'
>>> re.sub(r'(?:^|(?<=_))a-1', 'a-2', key)
'tea-1_a-2'
См. Python Синтаксис регулярного выражения Документация для получения дополнительной информации.информация.