Я связался с преобразователями и python, поэтому использую библиотеку FST по умолчанию. Например, у меня есть список ['a','b','c']
. Мне нужно заменить 'b'
, если за ним следует 'c'
. Я делаю следующие правила, но они работают только если 'b'
находится между 'a'
и 'c'
и только с этой длиной массива.
from fst import fst
list = ['a','b','c']
t = fst.FST('example')
for i in range(0,len(list)):
t.add_state(str(i))
t.initial_state = '0'
t.add_arc('0','0',('a'),('a'))
t.add_arc('0','1',('b'),('d'))
t.add_arc('1','1',('c'),('c'))
t.set_final('1')
print t.transduce(list)
У меня есть ['a','d','c']
. Мне нужно заменить 'b'
на 'd'
, где бы он ни был. например замените 'b'
, если за ним следует 'l'
['m','r','b','l'] => ['m','r','o','l']
['m','b','l'] => ['m','o','l']
['b','l','o'] => ['o','l','o']
Пожалуйста, помогите мне, спасибо!