1. 程式人生 > 實用技巧 >第14講:字串--各種奇葩內建方法

第14講:字串--各種奇葩內建方法

一 字串

1 定義:由數字、下劃線、字母組成的一段字元

2 建立:我們用雙引號或者單引號建立一個字串,例如:s = "I love you!"

3 切片/擷取:使用方括號和冒號擷取字串,具體語法為:[頭下標:尾下標:步長]

  • 獲取的子字串包含頭下標的字元,但不包含尾下標的字元。
  • 下標為空:表示從頭取到尾
  • 下標為正:使用正索引從字串開頭開始切片/擷取
  • 下標為負:使用負索引從字串末尾開始切片/擷取
  • [頭下標:尾下標:步長] :Python 列表擷取可以接收第三個引數,引數作用是擷取的步長

4 更新:使用切片的方法重新構建一個字串,原來的字串還在,不用的話會被垃圾回收機制回收

二 字串方法

  • capitalize():把字串第一個字元改為大寫
  • casefold():將字串的所有字元轉為小寫
  • center(width) 將字串居中,並使用空格填充長度為width的字串
  • count(sub[start[,end]]) 返回某個子字串在整個字串裡面出現的次數
  • encode(encoding = 'utf-8',errors='strict') 以enconding指定編碼格式對字串進行編碼
  • endswith(sub[start[,end]]) 檢查字串是否以sub字串結束,如果是返回True,否則返回False
  • startswith(sub[start[,end]]) 檢查字串是否以sub字串開始,如果是返回True,否則返回False
  • expandtabs([tabsize=8]) 把字串中的tab符號"\t"轉化為空格,如果不指定引數,預設tabsize=8
  • find(sub[start[,end]]) 檢測sub是否包含在字串中,如果有則返回索引值,否則返回-1,start和end表示引數範圍,可選
  • rfind(sub[start[,end]]) 和find()方法類似,不過是從字串右邊開始查詢
  • index(sub[start[,end]]) 和find一樣,不過如果sub不在字串中會返回一個異常
  • rindex(sub[start[,end]]) 類似於index方法,不過是從右邊開始找
  • isalnum()所有字元都是數字或者字母,為真返回 True,否則返回 False。
  • isalpha() 所有字元都是字母,為真返回 True,否則返回 False。
  • isdigit() 所有字元都是數字,為真返回 True,否則返回 False。
  • islower() 所有字元都是小寫,為真返回 True,否則返回 False。
  • isupper() 所有字元都是大寫,為真返回 True,否則返回 False。
  • istitle() 所有單詞都是首字母大寫,為真返回 True,否則返回 False。
  • isspace() 所有字元都是空白字元,為真返回 True,否則返回 False。
  • isdecimal() 如果字串只包含十進位制數則返回true,否則返回false。
  • isnumeric() 如果字串中只包含數字,則返回true,否則返回false
  • join(sub) 以字串作為分隔符,插入到字串中的所有sub字元之間
  • isjust(width) 返回一個左對齊的字串,並使用空格填充至長度為width的新字串
  • rsjust(width) 返回一個右對齊的字串,並使用空格填充至長度為width的新字串
  • istrip() 去掉字串左邊的所有空格
  • strip() 刪除字串前邊和後面的所有空格,中間的空格不刪
  • rstrip() 去掉字串末尾的所有空格
  • partition(sub) 找到字串sub,把字串分成一個三元組(pre_sub,sub,fol_sub),如果字串不包含sub則返回('原字串',' ',' ')
  • rpartition(sub) 類似於partition方法,不過是從右邊開始查詢
  • replace(old,new[,count]) 把字串中的old字串替換成新的字串new,如果count指定,則替換不超過count次
  • split(sep=None,maxsplit=-1) 不帶引數預設是以空格為分隔符切片字串,如果maxsplit引數有設定,則僅分隔maxsplit個字串,返回切片後的字串拼接的列表
  • splitlines([keepends]) 按照'\n'分隔,返回一個包含各行作為元素的列表,如果keepends引數指定,則返回前keepends行
  • swapcase() 翻轉字串中的大小寫
  • title() 返回標題化(所有單詞都是首字母大些,其餘字母小寫)的字串
  • translate(table) 根據table規則(可以由str.maketrans('a','b')定製)轉換字串中的字元
  • lower() 字串中所有大寫字母轉換為小寫
  • upper() 字串中所有小寫字母轉換為大寫
  • zfill(width) 返回字串長度為width的字串,原字串右對齊,前面用0填充

translate(table) :舉例

>>> str7 = 'aaaaassssssaaaaa'
>>> str7.translate(str7.maketrans('s','b'))
'aaaaabbbbbbaaaaa'
>>> str7.maketrans('s','b')
{115: 98}
>>>