Python 數(shù)據(jù)結(jié)構(gòu) 字符串

定義

  • 一個(gè)個(gè)字符組成的有序的序列,是字符的集合

  • 使用單引號(hào)、雙引號(hào)、三引號(hào)

  • 字符串是不可變對(duì)象

  • Python3起,字符串就是Unicode類型

字符串join連接

  • 'string'.join(iterable) -> str

    • 將可迭代對(duì)象連接起來,使用string作為分隔符

    • 可迭代對(duì)象本身的元素都是字符串

    • 返回一個(gè)新的字符串

字符串+連接

  • + -> str

    • 將2個(gè)字符串連接在一起

    • 返回一個(gè)新的字符串

字符串分割

分割字符串的方法分為兩類

  • split系

    • 將字符串按照分隔符分割成若干字符串,并返回 列表
  • split(sep=None, maxsplit=-1) -> list of strings

    • 從左至右
    • sep指定分割字符串,缺省的情況下空白字符作為分隔符
    • maxsplit指定分割的次數(shù),-1表示遍歷整個(gè)字符串
  • rsplit(sep=None, maxsplit=-1) -> list of strings

    • 從右至左
    • sep指定分割字符串,缺省的情況下空白字符串作為分隔符
    • maxsplit指定分割的次數(shù),-1表示遍歷整個(gè)字符串
  • splitlines([keepends=False]) -> list of strings

    • 按照行來切分字符串
    • keepends指的是否保留行分隔符
    • 行分隔符包括\n、\r\n、\r 等
  • partition系

    • 將字符串按照分隔符分割成2段,返回這2段和分隔符的元組
  • partition(sep) -> (head,sep,tail)

    • 從左至右,遇到分隔符就把字符串分割成兩部分,返回頭,分隔符、尾三部分的三元組;如果沒有找到分隔符,就返回頭、2個(gè)空元素的三元組
    • sep分割字符串,必須制定
  • rpartition(sep) -> (head,sep,tail)

    • 從右至左,遇到分隔符就把字符串分割成兩部分,返回頭、分隔符、尾三部分的三元組;如果沒有找到分隔符,就返回2個(gè)空元素和尾的三元組

字符串大小寫

  • upper()

    • 全大寫
  • lower()

    • 全小寫
  • 大小寫,做判斷的時(shí)候用

  • swapcase()

    • 交互大小寫

字符串修改

  • replace(old,new[,count]) - str

    • 字符串中找到匹配替換為新子串,返回新字符串
    • count表示替換幾次,不指定就是全部替換
  • strip([char]) -> str

    • 從字符串兩端去除指定的字符集chars中的所有字符

    • 如果chars沒有指定,去除兩端的空白字符

    • lstrip([char]) -> str

      • 從左開始
    • rstrip([char]) -> str

      • 從右開始

字符串查找

  • find(sub[,start[,end]]) -> int

    • 在指定的區(qū)間[start[,end]],從左至右,查找子串sub,找到返回索引,沒有找到返回-1
  • rfind(sub[,start[,end]]) -> int

    • 在指定的區(qū)間[start[,end]],從左至,查找子串sub,找到返回索引,沒有找到返回-1

時(shí)間復(fù)雜度

  • index和count方法都是O(n)
  • 隨著列表數(shù)據(jù)規(guī)模的增大,而效率下降

字符串判斷

  • endswith(suffix[, start[, end]]) -> bool

    • 在指定的區(qū)間[start,end],字符串是否是suffix結(jié)尾
  • startswith(prefix[, start[, end]]) -> bool

    • 在指定的區(qū)間[start,end],字符串是否是prefix開頭

字符串判斷is系列

  • isalnum() -> 是否是字母和數(shù)字組成
  • isalpha() -> 是否是字母
  • isdecimal() -> 是否包含十進(jìn)制數(shù)字
  • isdigit() -> 是否全部是數(shù)字(0~9)
  • isdentifier() -> 是不是字母和下劃線開頭,其他都是字母、數(shù)字、下劃線
  • islower() -> 是否都是小寫
  • isupper() -> 是否全部大寫
  • isspace() -> 是否只包含空白字符串
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容