python拆分含有多个分隔符的字符串(split()&re)

python拆分含有多个分隔符的字符串(split()&re)

def split_demo1(s,sign_l):
    # use python-->split()
    result=[s]
    for i in sign_l:
        t=[]
        list(map(lambda x: t.extend(x.split(i)),result))
        result = t
    print(result)


def split_demo1_pro(s,sign_l):
    # upgrade split_demo1
    result=[s]
    for i in sign_l:
        t=[]
        list(map(lambda x: t.extend(x.split(i)),result))
        result = t
    result = [i for i in result if i != '']
    print(result)

def split_demo1_final(s,sign_l):
    # use regular expression  ->split()
    import re
    result=re.split('['+sign_l+']+',s)
    print(result)

if __name__=='__main__':
    s='1,2.3;4,5'
    sign_l=',.;'
    split_demo1(s,sign_l)
    #split_demo1中存在设计缺陷,如果有两个分隔符放在了一起,得到的数组会存在空值
    s='1,2.3;4,.5'
    split_demo1(s,sign_l)
    # 将split_demo1 升级为 split_demo1_pro
    split_demo1_pro(s,sign_l)
    # 最优策略 使用正则表达式
    split_demo1_final(s,sign_l)

猜你喜欢

转载自blog.csdn.net/qq_39962271/article/details/130610058