Qual é a maneira mais pitônica de aplicar uma função em cada palavra em uma string com vários tipos de caracteres de espaço em branco?

Suponha que eu tenha uma função

def f(a):
  return a[::-1]

Eu quero aplicar a função f a cada palavra em uma string. Se a string consiste apenas em espaços, eu posso fazer

>>> s = '   this  is a banana   '
>>> ' '.join(map(f, s.split(' ')))
'   siht  si a ananab   '

Mas como posso fazer isso quando a string consiste em vários tipos de espaços em branco? (por exemplo, \ te \ n)

Por exemplo, eu quero mudar

'\t  \t this  is a\tbanana   \n'

para

'\t  \t siht  si a\tananab   \n'

questionAnswers(2)

yourAnswerToTheQuestion