日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

【Python】07、python内置数据结构之字符串

發(fā)布時(shí)間:2025/3/17 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】07、python内置数据结构之字符串 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


一、字符串

1、定義和初始化

In?[4]:?s?=?"hello?python" In?[4]:?s?=?"hello?python"In?[5]:?s Out[5]:?'hello?python'In?[6]:?s?=?'hello?python'In?[7]:?s Out[7]:?'hello?python'In?[8]:?s?=?'''hello?python'''In?[9]:?s Out[9]:?'hello?python'In?[10]:?s?=?"""hello?python"""In?[11]:?s Out[11]:?'hello?python'

???? python中單雙引號(hào)沒(méi)有區(qū)別,只能定義單行字符串

???? 三引號(hào)能定義多行字符串

???? 單雙三引號(hào)是有區(qū)別的

In?[24]:?s?=?'hello??pythonFile?"<ipython-input-24-54fb5309d2d0>",?line?1s?=?'hello??python^ SyntaxError:?EOL?while?scanning?string?literalIn?[25]:?s?=?'hello??python?\????????#?續(xù)寫上一行...:?i?like?python'In?[26]:?s Out[26]:?'hello??python?i?like?python'In?[22]:?s?=?"""hello?python...:?i?like?python"""In?[23]:?s Out[23]:?'hello?python\ni?like?python'


工廠函數(shù)str():

In?[12]:?print(str.__doc__) str(object='')?->?str str(bytes_or_buffer[,?encoding[,?errors]])?->?strCreate?a?new?string?object?from?the?given?object.?If?encoding?or errors?is?specified,?then?the?object?must?expose?a?data?buffer that?will?be?decoded?using?the?given?encoding?and?error?handler. Otherwise,?returns?the?result?of?object.__str__()?(if?defined) or?repr(object). encoding?defaults?to?sys.getdefaultencoding(). errors?defaults?to?'strict'.In?[13]:?s?=?str("abc")In?[14]:?s Out[14]:?'abc'In?[16]:?s?=?str([1,?2])In?[17]:?s Out[17]:?'[1,?2]'In?[18]:?s?=?str(1)In?[19]:?s Out[19]:?'1'


2、字符串轉(zhuǎn)義

In?[32]:?s?=?"i?like?\n?python"In?[33]:?s Out[33]:?'i?like?\n?python'In?[34]:?s?=?"i?like?\npython"In?[35]:?s Out[35]:?'i?like?\npython'In?[36]:?s?=?'I'm?xj'File?"<ipython-input-36-0b8827686244>",?line?1s?=?'I'm?xj'^ SyntaxError:?invalid?syntaxIn?[37]:?s?=?'I\'m?xj'In?[38]:?s Out[38]:?"I'm?xj"In?[50]:?path?=?'c:\windows\nt\system32'????#?這里的\n可能會(huì)被轉(zhuǎn)義成換行符In?[51]:?path Out[51]:?'c:\\windows\nt\\system32'In?[52]:?path?=?'c:\\windows\\nt\\system32'??#?一般需要這么寫In?[53]:?path Out[53]:?'c:\\windows\\nt\\system32'In?[54]:?path?=?r'c:\windows\nt\system32'???#?加r(raw)能表示此字符串是自然字符串,不會(huì)轉(zhuǎn)義In?[55]:?path Out[55]:?'c:\\windows\\nt\\system32'


二、字符串的操作

1、索引操作

In?[59]:?s?=?"I'm?xjj"In?[60]:?s[1] Out[60]:?"'"In?[61]:?s[2] Out[61]:?'m'In?[62]:?s[3] Out[62]:?'?'


2、str的連接和分割

?1)str的連接

str.join()

???? 使用str將可迭代對(duì)象的str元素連接成1個(gè)str

???? 參數(shù)是元素都為str的可迭代對(duì)象,接收者是分隔符

In?[71]:?print(str.join.__doc__) S.join(iterable)?->?strReturn?a?string?which?is?the?concatenation?of?the?strings?in?the iterable.??The?separator?between?elements?is?S.In?[81]:?lst?=?["I",?"am",?"xxj"]????#?可迭代對(duì)象的元素必須是strIn?[82]:?''.join(lst) Out[82]:?'Iamxxj'In?[83]:?'?'.join(lst) Out[83]:?'I?am?xxj'In?[84]:?','.join(lst) Out[84]:?'I,am,xxj'In?[85]:?',!'.join(lst) Out[85]:?'I,!am,!xxj'In?[86]:?'?,?'.join(lst) Out[86]:?'I?,?am?,?xxj'In?[87]:?lst?=?[1,?2,?3]In?[88]:?','.join(lst) --------------------------------------------------------------------------- TypeError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-88-b4c772e35459>?in?<module>() ---->?1?','.join(lst)TypeError:?sequence?item?0:?expected?str?instance,?int?found


?+

In?[93]:?"hello"?+?"python" Out[93]:?'hellopython'In?[94]:?str1?=?"xxj"In?[95]:?str1?+?1 --------------------------------------------------------------------------- TypeError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-95-2584ac008f78>?in?<module>() ---->?1?str1?+?1TypeError:?must?be?str,?not?intIn?[96]:?str1?+?"hello" Out[96]:?'xxjhello'In?[97]:?str1?+?"?hello" Out[97]:?'xxj?hello'


?2)分割

str.split()

?? ? 不原地修改,返回使用分隔符分隔的列表

In?[99]:?print(s.split.__doc__) S.split(sep=None,?maxsplit=-1)?->?list?of?stringsReturn?a?list?of?the?words?in?S,?using?sep?as?the delimiter?string.??If?maxsplit?is?given,?at?most?maxsplit splits?are?done.?If?sep?is?not?specified?or?is?None,?any whitespace?string?is?a?separator?and?empty?strings?are removed?from?the?result.In?[98]:?s?=?"I?love?python"In?[100]:?s.split("o")??????????????#?默認(rèn)分隔所有 Out[100]:?['I?l',?'ve?pyth',?'n']In?[101]:?s.split("o",?1)???????????#?指定分隔一次 Out[101]:?['I?l',?'ve?python']In?[102]:?s.split() Out[102]:?['I',?'love',?'python']In?[102]:?s.split()?????????????????#?默認(rèn)分隔符為1個(gè)或多個(gè)空格 Out[102]:?['I',?'love',?'python']In?[103]:?s.split("ov")????????????#?可以使用多個(gè)字符串當(dāng)空格 Out[103]:?['I?l',?'e?python']In?[159]:?s.split("A")????????????#?不包含分隔符號(hào)時(shí),不分隔原str Out[159]:?['I?love?python']In?[104]:?s?=?"I?love??????python"In?[105]:?s.split() Out[105]:?['I',?'love',?'python']In?[108]:?s.split("?")??????????????#?使用一個(gè)空格當(dāng)做分隔符 Out[108]:?['I',?'love',?'',?'',?'',?'',?'',?'python']In?[110]:?s.split(maxsplit=1) Out[110]:?['I',?'love??????python']In?[111]:?s.split() Out[111]:?['I',?'love',?'python']

str.rsplit():

????? 從右往左開始分隔;

????? 當(dāng)不指定maxsplit參數(shù)時(shí),str.rsplit()和str.split()完全一樣,當(dāng)str.split()效率更高

In?[122]:?s?=?"I?love?python"In?[123]:?s.rsplit("o") Out[123]:?['I?l',?'ve?pyth',?'n']In?[124]:?s.rsplit("o",?1) Out[124]:?['I?love?pyth',?'n']

str.splitlines():

????? 按行分隔,返回結(jié)果可以選擇帶不帶換行符;返回值是一個(gè)列表

In?[136]:?print(str.splitlines.__doc__) S.splitlines([keepends])?->?list?of?stringsReturn?a?list?of?the?lines?in?S,?breaking?at?line?boundaries. Line?breaks?are?not?included?in?the?resulting?list?unless?keepends is?given?and?true.In?[137]:?s?=?"""I?am?xxj...:?i?love?python"""In?[138]:?s Out[138]:?'I?am?xxj\ni?love?python'In?[139]:?s.splitlines() Out[139]:?['I?am?xxj',?'i?love?python']In?[140]:?s.splitlines(true) --------------------------------------------------------------------------- NameError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-140-dfaf8d28775c>?in?<module>() ---->?1?s.splitlines(true)NameError:?name?'true'?is?not?definedIn?[141]:?s.splitlines(True) Out[141]:?['I?am?xxj\n',?'i?love?python']


str.partition():

????? 總是返回一個(gè)三元組,它被傳入的分隔符分隔1次,分隔成(head, sep,tail)

In?[145]:?print(str.partition.__doc__) S.partition(sep)?->?(head,?sep,?tail)Search?for?the?separator?sep?in?S,?and?return?the?part?before?it, the?separator?itself,?and?the?part?after?it.??If?the?separator?is?not found,?return?S?and?two?empty?strings.In?[147]:?s?=?"I?love?python"In?[148]:?s.partition("o") Out[148]:?('I?l',?'o',?'ve?python')

str.rpartition()是str.partition()從右往左的版本:

In?[153]:?s.rpartition("o") Out[153]:?('I?love?pyth',?'o',?'n')In?[154]:?s.rpartition("A") Out[154]:?('',?'',?'I?love?python')In?[155]:?"A".rpartition("A") Out[155]:?('',?'A',?'')In?[156]:?"".rpartition("A") Out[156]:?('',?'',?'')In?[157]:?"?".rpartition("A") Out[157]:?('',?'',?'?')


3、str大小寫轉(zhuǎn)換與排版

In?[2]:?s?=?"I?love?python"In?[3]:?s.upper() Out[3]:?'I?LOVE?PYTHON'In?[5]:?s.lower() Out[5]:?'i?love?python'In?[6]:?s.title()????????#?首字母全部大寫 Out[6]:?'I?Love?Python'In?[8]:?s.capitalize()???#?把首字母大寫 Out[8]:?'I?love?python'In?[10]:?print(s.center.__doc__)???????#?在給定寬度下居中,可以使用單個(gè)字符填充 S.center(width[,?fillchar])?->?strReturn?S?centered?in?a?string?of?length?width.?Padding?is done?using?the?specified?fill?character?(default?is?a?space)In?[11]:?s.center(50) Out[11]:?'??????????????????I?love?python???????????????????'In?[12]:?s.center(50,?"#") Out[12]:?'##################I?love?python###################'In?[13]:?s.center(50,?"#%") --------------------------------------------------------------------------- TypeError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-13-4aa39ce1c3b3>?in?<module>() ---->?1?s.center(50,?"#%")TypeError:?The?fill?character?must?be?exactly?one?character?longIn?[19]:?s Out[19]:?'I?love?python'In?[20]:?s.zfill(5) Out[20]:?'I?love?python'In?[21]:?s.zfill(50)????????#?用0填充 Out[21]:?'0000000000000000000000000000000000000I?love?python'In?[23]:?print(s.casefold.__doc__) S.casefold()?->?strReturn?a?version?of?S?suitable?for?caseless?comparisons.In?[25]:?s Out[25]:?'I?love?python'In?[26]:?s.casefold()?????#?返回一個(gè)統(tǒng)一大小寫的str,在不同平臺(tái)有不同的表現(xiàn)形式 Out[26]:?'i?love?python'In?[27]:?s.swapcase()?????#?交換大小寫 Out[27]:?'i?LOVE?PYTHON'In?[36]:?"\t".expandtabs()??#?默認(rèn)將\t轉(zhuǎn)換為8個(gè)空格 Out[36]:?'????????'In?[40]:?"\t".expandtabs(8) Out[40]:?'????????'In?[37]:?"\t".expandtabs(3) Out[37]:?'???'


4、修改

str.replace()

????? 使用new str替換old str,返回新的str

In?[44]:?help(str.replace.__doc__) No?Python?documentation?found?for?'S.replace(old,?new[,?count])?->?str\n\nReturn?a?copy?of?S?with?all?occurrences?of?substring\nold?replaced?by?new.??If?the?optional?argument?count?is\ngiven,?only?the?first?count?occurrences?are?replaced.'. Use?help()?to?get?the?interactive?help?utility. Use?help(str)?for?help?on?the?str?class.In?[47]:?s Out[47]:?'I?love?python'In?[48]:?s.replace("love",?"give?up") Out[48]:?'I?give?up?python'In?[49]:?s.replace("o",?0) --------------------------------------------------------------------------- TypeError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-49-184707d40696>?in?<module>() ---->?1?s.replace("o",?0)TypeError:?replace()?argument?2?must?be?str,?not?intIn?[50]:?s.replace("o",?"O") Out[50]:?'I?lOve?pythOn'In?[51]:?s.replace("o",?"O",?-1) Out[51]:?'I?lOve?pythOn'In?[52]:?s.replace("o",?"O",?0) Out[52]:?'I?love?python'In?[53]:?s.replace("o",?"O",?1) Out[53]:?'I?lOve?python'In?[54]:?s.replace("o",?"O",?5) Out[54]:?'I?lOve?pythOn'


str.strip()

str.rstrip()

str.lstrip()

????? 移除str首尾指定字符集合內(nèi)的字符

In?[62]:?print(str.strip.__doc__) S.strip([chars])?->?strReturn?a?copy?of?the?string?S?with?leading?and?trailing whitespace?removed. If?chars?is?given?and?not?None,?remove?characters?in?chars?instead.In?[66]:?s?=?"?I?love?python??"In?[67]:?s Out[67]:?'?I?love?python??'In?[68]:?s.strip()???????????#?默認(rèn)去掉首尾的空白字符 Out[68]:?'I?love?python'In?[69]:?s.lstrip()??????????#?去掉首部的空白字符 Out[69]:?'I?love?python??'In?[70]:?s.rstrip()??????????#?去掉尾部的空白字符 Out[70]:?'?I?love?python'In?[76]:?s?=?"\n?\r?\t?haha?\n?\r\t"In?[77]:?s Out[77]:?'\n?\r?\t?haha?\n?\r\t'In?[78]:?s.strip() Out[78]:?'haha'In?[84]:?s?=?"I?love?python?haha"In?[86]:?s.strip("a") Out[86]:?'I?love?python?hah'In?[87]:?s.strip("ha") Out[87]:?'I?love?python?'In?[88]:?s.strip("on") Out[88]:?'I?love?python?haha'In?[89]:?s Out[89]:?'I?love?python?haha'In?[91]:?s?=?"{{?haha?haha?}}"In?[92]:?s Out[92]:?'{{?haha?haha?}}'In?[94]:?s.strip("{}")? Out[94]:?'?haha?haha?'In?[95]:?s.strip("{}s")??????#?移除指定字符集合里的字符 Out[95]:?'?haha?haha?'In?[96]:?s.lstrip("{}s") Out[96]:?'?haha?haha?}}'


str.ljust()

str.rjust()

????? 左\右對(duì)其并填充

In?[98]:?print(str.ljust.__doc__) S.ljust(width[,?fillchar])?->?strReturn?S?left-justified?in?a?Unicode?string?of?length?width.?Padding?is done?using?the?specified?fill?character?(default?is?a?space).In?[105]:?s?=?"xxj"In?[106]:?s.ljust(3) Out[106]:?'xxj'In?[107]:?s.ljust(1) Out[107]:?'xxj'In?[108]:?s.ljust(10) Out[108]:?'xxj???????'In?[109]:?s.ljust(10,?"A") Out[109]:?'xxjAAAAAAA'In?[110]:?s.ljust(10,?"Ab") --------------------------------------------------------------------------- TypeError?????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-110-b45e86b2e828>?in?<module>() ---->?1?s.ljust(10,?"Ab")TypeError:?The?fill?character?must?be?exactly?one?character?longIn?[111]:?s.rjust(10,?"A") Out[111]:?'AAAAAAAxxj'


5、查找

str.index()

str.rindex()

str.find()

str.rfind()

str.count()

In?[32]:?print(str.find.__doc__) S.find(sub[,?start[,?end]])?->?intReturn?the?lowest?index?in?S?where?substring?sub?is?found, such?that?sub?is?contained?within?S[start:end].??Optional arguments?start?and?end?are?interpreted?as?in?slice?notation.Return?-1?on?failure.In?[23]:?s?=?"I?am?xxj,?i?love?python"In?[24]:?s.find("x") Out[24]:?5In?[25]:?s.find("xx") Out[25]:?5In?[26]:?s.find("o") Out[26]:?13In?[27]:?s.find("o",?13,?13) Out[27]:?-1In?[28]:?s.find("o",?13,?14) Out[28]:?13In?[29]:?s.find("o",?14,?50) Out[29]:?21In?[30]:?s.find("o",?14,?21) Out[30]:?-1In?[33]:?s.find("A") Out[33]:?-1In?[34]:?s.find("o",?-1,?-15) Out[34]:?-1In?[35]:?s.find("o",?-15,?-1) Out[35]:?13In?[37]:?s.rfind("o") Out[37]:?21

str.index()和str.find()的區(qū)別:

?????? 當(dāng)給定的值不在查找范圍時(shí),str.index()會(huì)拋出ValueError而str.find()返回-1

?????? str的count()方法和list、tuple的count()方法不一樣,也可以限制查找范圍

?????? str有rindex(),list、tuple沒(méi)有


6、判斷

str.startswith()

str.endswith()

?????? 給定范圍內(nèi)的str是否以給定substr開頭或結(jié)尾

In?[64]:?s Out[64]:?'I?am?xxj,?i?love?python'In?[66]:?s.startswith("i") Out[66]:?FalseIn?[67]:?s.startswith("I") Out[67]:?TrueIn?[68]:?s.startswith("I?am?x") Out[68]:?TrueIn?[69]:?s.endswith("n") Out[69]:?TrueIn?[70]:?s.endswith("thon") Out[70]:?TrueIn?[71]:?s.startswith("x",?5) Out[71]:?TrueIn?[72]:?s.startswith("xxj",?5) Out[72]:?TrueIn?[73]:?s.startswith("xxj",?5,?5) Out[73]:?FalseIn?[74]:?s.startswith("xxj",?5,?7) Out[74]:?FalseIn?[75]:?s.startswith("xxj",?5,?8) Out[75]:?True


7、isxxx() 判斷類函數(shù)

?????? 看懂方法的意思就知道用途In?[80]:?s.isalnum() Out[80]:?FalseIn?[81]:?"abc123".isalnum() Out[81]:?TrueIn?[82]:?"abc123".isalpha() Out[82]:?FalseIn?[83]:?"abc".isalpha() Out[83]:?TrueIn?[84]:?"abc".isdecimal() Out[84]:?FalseIn?[85]:?"120".isdecimal() Out[85]:?TrueIn?[86]:?"120.123".isdecimal() Out[86]:?FalseIn?[87]:?"120.123".isdigit() Out[87]:?FalseIn?[88]:?"abc,".isdigit() Out[88]:?FalseIn?[89]:?".,".isdigit() Out[89]:?FalseIn?[90]:?"120123".isdigit() Out[90]:?TrueIn?[91]:?"120123".isspace() Out[91]:?FalseIn?[92]:?"\t".isspace() Out[92]:?True


轉(zhuǎn)載于:https://blog.51cto.com/xiexiaojun/1930608

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

總結(jié)

以上是生活随笔為你收集整理的【Python】07、python内置数据结构之字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。