Capturando grupos nomeados no regex com re.findall

Quando eu estava tentando responder a esta pergunta:regex para dividir% de idades e valores em python Percebi que tinha que reordenar os grupos a partir do resultado da busca. Por exemplo:

data = """34% passed 23% failed 46% deferred"""
result = {key:value for value, key in re.findall('(\w+)%\s(\w+)', data)}
print(result)
>>> {'failed': '23', 'passed': '34', 'deferred': '46'}

Aqui, o resultado da pesquisa é:

>>> re.findall('(\w+)%\s(\w+)', data)
>>> [('34', 'passed'), ('23', 'failed'), ('46', 'deferred')]

Existe uma maneira de alterar / especificar a ordem dos grupos que fazemre.findall return:

[('passed', '34'), ('failed', '23'), ('deferred', '46')]

Apenas para esclarecer, a questão é:

É possível especificar a ordem ou reordenar os grupos para o retorno da função re.findall?

Usei o exemplo acima para criar um dicionário para fornecer um motivo / caso de uso para quando você deseja alterar a ordem (tornando a chave como valor e o valor como chave)

Maior esclarecimento:

Para lidar com grupos em regexes maiores e mais complicadas, você pode nomear grupos, mas esses nomes só são acessíveis quando você faz uma pesquisa de re-pesquisa. Pelo que li, o findall possui um índice fixo para os grupos retornados na tupla. A pergunta é: alguém sabe como esses índices podem ser modificados. Isso ajudaria a tornar o manuseio de grupos mais fácil e intuitivo.

questionAnswers(3)

yourAnswerToTheQuestion