全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
369 0
2020-01-12
def qc_string(s):
    filelist = s
    filelist2 = []
    for a_string in filelist:
        temp=a_string[::-1]#将文本翻转
        char_list = list(a_string) #把字符串转化列表自动按单个字符分词了
#通过对比原始文本与当前文本,记录要删除的索引,将重复文本删除
        list1 = []#原始文本
        list1.append(char_list[0])
        list2 = [\'\']#比较文本
        del1 = []#记录要删除的索引
        i = 0
        while (i<len(char_list)):
            i = i+1
#若i为最后一个位置时,list1 与list2文本相同,需要删除的文本索引为range(i-m,i),其中m为list2的总字符数
            if i == len(char_list):
               if list1 == list2:
                    m = len(list2)
                    for x in range(i-m,i):
                        del1.append(x)
            else:
#(1.1)若词汇与list1第一个词汇相同,list2为空,将词加入list2中
               if char_list == list1[0] and list2==[\'\']:
                   list2[0]=char_list
#(1.2)若词汇与list1第一个词汇相同,list2不为空,分两种情况:
               elif char_list == list1[0] and list2 != [\'\']:
#(1.2.1)若list1=list2,记录要删除的索引位置,并重置list2,将新的词汇复制给list2
                   if list1 == list2:
                        m = len(list2)
                        for x in range(i-m,i):
                            del1.append(x)
                        list2 = [\'\']
                        list2[0]=char_list
#(1.2.2)若list1不等于list2,令list1=list2,并重置list2,将新的词汇复制给list2
                   else:
                       list1 = list2
                       list2 = [\'\']
                       list2[0]=char_list
#(2.1)若词汇和list1第一个词汇不同,list2为空,将词加入list1&apos;
               elif char_list != list1[0] and list2==[\'\']:
                   list1.append(char_list)
#(2.2)若词汇和list1第一个词汇不同,list2不为空,分两种情况:
               elif char_list != list1[0] and list2 !=[\'\']:
#(2.2.1)如果list1等于list2且list2的字符长度大于2,则记录要删除的索引位置,并重置list1,list2
                   if list1 == list2 and len(list2)>=2:
                        m = len(list2)
                        for x in range(i-m,i):
                           del1.append(x)
                        list1= [\'\']
                        list1[0]=char_list
                        list2 = [\'\']
#(2.2.2)如果list1不等于list2,将新的词汇加入到list2中
                   else:
                       list2.append(char_list)
        a = sorted(del1) #将位置索引进行排序
        t = len(a)-1
        while(t>=0):
            del char_list[a[t]]
            t = t-1
        str1 = \'\'.join(char_list)
        str2 = str1.strip()
        #str2=str2[::-1]
        filelist2.append(str2)
    return filelist2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群