Quiero ser capaz de sacar el tipo y el recuento de letras de un texto donde las letras podrían estar en cualquier orden. Hay algún otro análisis que estoy trabajando, pero este bit me ha dejado perplejo.Pyparsing - donde el orden de los tokens en impredecibles
input -> result
"abc" -> [['a',1], ['b',1],['c',1]]
"bbbc" -> [['b',3],['c',1]]
"cccaa" -> [['a',2],['c',3]]
Podría buscar o escanear y repetir para cada posible letra, pero ¿hay una forma clara de hacerlo?
Esto es por lo que yo tengo:
from pyparsing import *
def handleStuff(string, location, tokens):
return [tokens[0][0], len(tokens[0])]
stype = Word("abc").setParseAction(handleStuff)
section = ZeroOrMore(stype("stype"))
print section.parseString("abc").dump()
print section.parseString("aabcc").dump()
print section.parseString("bbaaa").dump()
Sí, los caracteres están agrupados por lo que es perfecto. Gracias por la solución y la explicación. ¡Amando pyparsing! – PhoebeB