Python如何把一个字符串拆成多个子串,多功能函数设计

Python把字符串拆成多个子串的方法

要想将Python的字符串拆成多个子串,可以使用字符串对象的split()方法。不过,使用才方法时,需要注意的是参数的传递,确切来说,需要观察原字符串的特点,比如目标子串之间是否有一样的分隔符,因此,又可以将该方法的使用分成两种情况。现罗列在下方:

  • 子串之间存在一样的分隔符,比如“A、B、C”字符串中的三个子串“A”、“B”和“C”之间都使用“、”间隔开来,那么就可以将“、”字符作为参数传递给split()方法,一次性将Python字符串拆分成多个目标子串;
  • 子串之间不存在一样的分隔符,比如“C、D,E”,那就需要多次使用split()方法来拆分字符串以得到目标子串;

Python把字符串拆成多个子串的函数设计

我们应该设计一个函数既可以在具有相同分隔符的情况下一次性拆分字符串,也可以在不存在一样分隔符的情况下拆分字符串,因此,我们就需要传递一个参数作为信息告诉函数的程序是否具有相同的分隔符,然后根据不同的情况执行不同的程序。除此之外,我们还需要一个可变参数,用来传递不同的分隔符,多次传递给split()方法。还有一点,就是split()方法的返回值是一个列表list,我们将通过索引的方式依照传入的分隔符的顺序访问列表的元素,具体的可参考下方的代码:

def splitStr(strObj, seq=True, *seqList):
    if seq:
        strList = strObj.split(seqList[0])
    else:
        strList = []
        strObjList = [strObj]
        for i in range(len(seqList)):
            
            strObjList = strObjList[0].split(seqList[i])
            if(len(strObjList) < 3):
                strList.append(strObjList.pop(0))
            elif i != len(seqList) - 1:
                tempstrObjList = strObjList.pop(-1)
                strList.extend(strObjList)
                strObjList = tempstrObjList
            else:
                strList.extend(strObjList)

    return strList
    
# 测试该函数
strObj = "笨鸟工具导航,www.x1y1z1.com"
strList1 = splitStr(strObj, True, "1")
print(strList1)
print("\n")
strList2 = splitStr(strObj, False, ",", ".")
print(strList2)

提示:这段代码如果有不理解或有问题的地方,可关注公众号,并留言,这是自己设计的,有些复杂。

免责声明:内容仅供参考,不保证正确性。


全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.