1. 程式人生 > >python 字串的方法

python 字串的方法

字串的常用函式 字串的分割   str.split()

split()可以將一個字串按照指定的標識分割成幾部分。這幾部分將以列表的形式返回,返回的列表是由字串元素組成。

split( sep , maxsplit ),sep代表分割字串時基於的分割符,maxsplit表示分割的次數。 split的引數為長度大於0的有效字串,如果引數字串沒有在在分割字串中出現,則無法分割,這是仍返回一個列表,列表中只有一個字串,就是待分割字串。

#split()

str1 = "a/b/c"
print("str1: ",str1)
print("str1.split(\"/\"): ",str1.split
("/")) #分割符不會在返回列表中返回 #如果分割符位於分割字串的左端或右端,則在分割結果中出現"" print("\nstr1.split(\"c\"): ",str1.split("c")) #maxsplit指定分割次數,預設為-1,即完全分割,若為0,及分割,若大於0,則為分割次數 str2 = "1+2+3+4+5" print("\nstr2: ",str2) print("str2.split(\"+\"): ",str2.split("+")) print("str2.split(\"+\",-1): ",str2.split("+",-1)) print("str2.split(\"+\",0): "
,str2.split("+",0)) print("str2.split(\"+\",2): ",str2.split("+",2)) #當sep為None預設值,即在分割時不指定分割字元,此時會按照目標串中的空白符進行分割 #空白符包括空格、製表符("\t")、換行符("\n")等。分割時所有的空白都會被分割,且多 #個連續的空白會被作為一個空白進行分割,且不會產生前面左右邊界分割時產生的"" str3 = "1 3 \n 5\n\t67 " print("\nstr3: ",str3) print("str3.split(): ",str3.split()) print("str3.split(\"\\n\"): "
,str3.split("\n")) print("str3.split(\" \"): ",str3.split(" "))

這裡寫圖片描述 字串的替換   str.replace()replace()函式可以對目標字串中的特定字串使用新的字串進行替換,並且將替換後形成的字串返回。 replace( old , new , count ),count是一個可選引數,如果函式中不使用count作為引數,則會對目標字串中的全部old進行替換,否則將只替換字串前面出現的count個old。

#replace(old,new,count)

str1 = "11aa22bb11cc55ddaa"
print("str1: ",str1)
print("str1.replace(\"1\",\"H\"): ",str1.replace("1","H"))

#當count大於old出現的次數,則全部替換,為負數時,也全部替換
print("str1.replace(\"a\",\"5\"): ",str1.replace("a","5"))
str2 = str1.replace("a","5")
print("str2.replace(\"5\",\"0\"): ",str2.replace("5","0"))
str3 = str2.replace("5","0")
print("str3.replace(\"0\",\"8\",3): ",str3.replace("0","8",3))

這裡寫圖片描述 字串的查詢   find() 、rfind()

find()和rfind()函式都是在字元竄中查詢指定的子串,並返回其第一次出現的的索引,如果沒有則返回 -1 。但find()函式是從字串的開頭開始查詢,rfind()是從字串的尾部開始查詢。 str.find( substring , start, end )substring是要查詢的字串,是start是要開始的索引,end是結束的索引,即在 [ start : end ]查詢。

#find()、 rfind()

str1 = "hello world"
print("str1: ",str1)
print("str1.find(\"l\"): ",str1.find("l"))
print("str1.rfind(\"l\"): ",str1.rfind("l"))

print("查找出所有的l的索引:")
i = 0
h = []
i = str1.find("l")
while i>-1:
    h.append(i)
    i = str1.find("l",i+1)

for j in h:
    if j>-1:
        print(j)

這裡寫圖片描述 字串的反轉

字串反轉是指把字串中最後一個字串移到字串第一個位置,按照倒序的方式依次前移。python中沒有提供對字串進行反轉的函式,但是可以使用列表和字串索引來實現字串的反轉。

#字串的反轉

#使用list的reverse()

def reverse(s):
    li = list(s)
    li.reverse()
    s = "".join(li)
    return s
#使用切片來反轉

def reverse1(s):
    return s[::-1]

str1 = input("輸入字串: ")
print("使用list反轉: ",reverse(str1))
print("使用切片反轉: ",reverse1(str1))
print("直接 str1[:: -1] 反轉:",str1[::-1])
print("str1: ",str1)

這裡寫圖片描述