当索引未知时,在列表中连接字符串

时间:2014-10-16 16:45:15

标签: python string

所以我仍然是python的新手,我的数据结构有些麻烦。具体来说,我在这里要做的是在列表中连接字符串。我的代码看起来像这样。 导入重新

FstFile = open('q1/fst1', 'ru')
InputFile = open('examples/ex', 'ru')

def cleanseInput(strVal):
    return re.sub(r'\"', '', re.sub(r'\'', '', strVal))

fstLines =FstFile.readlines()
#print fstLines 

FstStore = []
for item in fstLines:
   x = item.strip().split('\n')
   FstStore.append(x[0])

AcceptState = FstStore.pop(0)

#print FstStore
#print AcceptState
transitionStates = []
for item in FstStore:
    item = item[1: -1]
    #print item
    transitionStates.append(item[0])
    item = item[3: -1]
    #transitionStates.append(item[0])
    x = cleanseInput(item)
    #print x
    for i in x:
        transitionStates.append(i)
    #print i
#print transitionStates    
new = []
for k in transitionStates:
    #print k
    if(k != (r' ')):
        new.append(k)
for k in range(0, len(transitionStates)):
    #print transitionStates[k]
    if transitionStates[k] == '*':
        #print transitionStates[k]

print new 

我得到的输出看起来像这样: ['0','1','a','!','e','!','1','0','a','b']

我想做的是加入'!' 'e''!'成为一个元素'!e!'我遇到了麻烦,因为列表中这些符号的位置可能因文件而异,所以我不能直接拼接字符串。
有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这是一个(可能是次优的)解决方案

initial_string = "".join(['0', '1', 'a', '!', 'e', '!', '1', '0', 'a', 'b'])
import re
def StateMachineValidation(s,pat):
    return re.match(pat,s)

def Matcher(s,pat):
    match_len = len(pat)
    while s:
        if StateMachineValidation(s,pat):
           yield "".join(s[:match_len])
           s = s[match_len:]
        else:
           yield s[0]
           s = s[1:]

print list(Matcher(initial_string,"!.!"))