python 字串的方法
阿新 • • 發佈:2018-12-09
字串的常用函式 字串的分割 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)