Distinguir correspondências em pyparsing

Eu quero analisar algumas palavras e alguns números com pyparsing. Direito simples.

from pyparsing import *

A = Word(nums).setResultsName('A')
B = Word(alphas).setResultsName('B')
expr = OneOrMore(A | B)

result = expr.parseString("123 abc 456 7 d")
print result

O código acima é impresso['123', 'abc', '456', '7', 'd']. Então, tudo funcionou. Agora eu quero trabalhar com esses valores analisados. Para esta tarefa, preciso saber se eles correspondemA ouB. Existe uma maneira de distinguir entre esses dois.

A única coisa que encontrei após algumas pesquisas foi aitems método doParseResults classe. Mas só retorna[('A', '7'), ('B', 'd')], apenas as duas últimas correspondências.

Meu plano / objetivo é o seguinte:

for elem in result:
    if elem.is_of_type('A'):
        # do stuff
    elif elem.is_of_type('B'):
        # do something else

Como faço para distinguir entreA eB?

questionAnswers(3)

yourAnswerToTheQuestion