python中字符串String及其常見操作指南(方法、函數(shù))
注意:對(duì)字符串的所有操作,原始數(shù)據(jù)(即原字符串)不變 !(字符串是不可變類型)
對(duì)原字符串操作會(huì)返回一個(gè)操作后的數(shù)據(jù), 可以使用變量去接受數(shù)據(jù)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
下標(biāo)與切片
str[下標(biāo)],從左向右0→+,從右向左-1→
str[起始:結(jié)束:步長],范圍包首不包尾
>>> str="0123456789" #定義一個(gè)字符串,從0到9,共10個(gè)元素 >>> str[0] #取出0號(hào)下標(biāo)的元素 '0' >>> str[10] #嘗試取出10號(hào)下標(biāo)的元素 Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> str[10] IndexError: string index out of range #報(bào)錯(cuò),下標(biāo)越界,不存在str[10] >>> str[9] #下標(biāo)從左向右數(shù),第一個(gè)為0號(hào)下標(biāo),第N個(gè)元素下標(biāo)為N-1 '9' >>> str[-1] #下標(biāo)從右向左數(shù),第一個(gè)為-N號(hào)下標(biāo),倒數(shù)最后一個(gè)為-1 '9' >>> str[-10] '0'
常見方法
查找
.find(str),str存在字符串中返回下標(biāo)索引值,不存在返回-1
.rfind(str),str存在字符串中,查找順序?yàn)閺挠蚁蜃?,其它與find一樣
.index(str),存在返回下標(biāo)索引值,不存在報(bào)異常
.rindex(str),存在返回下標(biāo)索引值,查找順序?yàn)閺挠蚁蜃?,其它與index一樣
.count(str[,起始,結(jié)束]),查找指定字符串中該字符出現(xiàn)的總次數(shù)
>>> str='123aaabcdeeff' #定義一個(gè)字符串用于測試字符串方法的使用 >>> str.find(0) #嘗試查詢整數(shù)0是在于字符串中的下標(biāo) Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> str.find(0) TypeError: must be str, not int #字符串操作,查詢操作對(duì)象必須為字符串類型,所以元素應(yīng)用‘'標(biāo)識(shí) >>> str.find('1') #查詢字符1在指定字符串中首次出現(xiàn)的下標(biāo) 0 #返回的下標(biāo)為0 >>> str.find('a') #查詢字符a在指定字符串中首次出現(xiàn)的下標(biāo) 3 #返回的下標(biāo)為3 >>> str.rfind('a') #反向查詢(即從末尾向前查詢),字符a首次出現(xiàn)在字符串中的下標(biāo) 5 #返回的下標(biāo)為5 >>> str.index('0') #使用index查詢時(shí),字符不存在時(shí),會(huì)報(bào)錯(cuò) Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> str.index('0') ValueError: substring not found >>> str.find('0') #使用find查詢時(shí),不存在返回-1 -1 >>> str.rindex('a') #使用rindex反向查詢 5 >>> str.count('a') #使用count查詢指定字符出現(xiàn)的總共次數(shù) 3 >>> str.count('f') 2 >>> str.count('a',0,3) #使用count時(shí),可以指定范圍,第一個(gè)數(shù)字指定起始位置, 0 #第二個(gè)數(shù)字指定 結(jié)束范圍,查詢范圍包含起始位,不包含結(jié)束位 >>> str.count('a',1,5) 2 >>> str.find('abcde') #操作對(duì)象為字符串,傳入?yún)?shù)也是一個(gè)字符串,并不一定是一個(gè)字符 5 #可以是字母數(shù)字以及中文
替換
.replace(str1,str2 [,n] ),將字符串中所有的str1替換為str2,n可指定最多替換的次數(shù)
>>> str='123aaabcdeeff' >>> str.replace('a','s') #不指定替換次數(shù),將會(huì)全部替換 '123sssbcdeeff' >>> str.replace('a','s',1) #指定次數(shù)時(shí),僅替換指定次數(shù)個(gè),替換順序?yàn)閺那跋蚝? '123saabcdeeff' >>> str.replace('a','s',2) '123ssabcdeeff'
分割
.split(str[,n]),以str為分隔符(分割后丟失),將字符串分割為多個(gè)字符串,n可指定最多的分割次數(shù)
.partition(str),已指定字符做為一個(gè)部分,分割兩邊,生成三部分的字符串
.splitlines(),按照行進(jìn)行分割,返回一個(gè)包含各行作為元素的列表
>>> str='123123123' #定義一個(gè)字符串,用于測試 >>> str.split('2') #使用split進(jìn)行分割 ['1', '31', '31', '3'] #分割后指定的分割符消失,生成多個(gè)字符串的列表 >>> str.partition('2') #使用partition進(jìn)行分割 ('1', '2', '3123123') #僅進(jìn)行一次分割,分割后制定的分割符單獨(dú)成為一部分 >>> str='abc\nabc\nabc\nabc' #定義一個(gè)包含行符的字符串 >>> print(str) #打印輸出測試 abc abc abc abc >>> str.splitlines() #使用splitlines進(jìn)行分割,生成一個(gè)列表,每一行數(shù)據(jù)為一個(gè)元素 ['abc', 'abc', 'abc', 'abc']
大小寫格式化
.capitalize(),將字符串第一個(gè)首字母大寫(其它都小寫)
.title(),將字符串中所有單詞首字母大寫(其它都小寫)
.lower()轉(zhuǎn)換所有大寫字符為小寫
.upper()轉(zhuǎn)換所有小寫字符為大寫
>>> str="abcABC defDEF hijHIJ klMN" #定義一個(gè)包含大小寫的字符串用于測試 >>> str.capitalize() #將字符串首字母進(jìn)行大寫 'Abcabc defdef hijhij klmn' >>> str.title() #將所有單詞首字母進(jìn)行大寫 'Abcabc Defdef Hijhij Klmn' >>> str.lower() #將字符串中所有字母小寫 'abcabc defdef hijhij klmn' >>> str.upper() #將字符串中所有字母大寫 'ABCABC DEFDEF HIJHIJ KLMN' >>>
對(duì)齊格式化
.ljust(width)返回一個(gè)原字符串左對(duì)齊,并默認(rèn)使用空格補(bǔ)充至長度為width的字符串
.rjust(width)返回一個(gè)原字符串右對(duì)齊,并默認(rèn)使用空格補(bǔ)充至...........
.center(width) 返回一個(gè)原字符居中,并使用空格補(bǔ)充至width長度的新字符串
#默認(rèn)使用空格補(bǔ)充長度,顯示不夠明顯,所以為了突出效果,指定使用了*補(bǔ)充 str1=' abcde ' print(str1.ljust(20,'*')) #左對(duì)齊,指定長度為20 str2=' abcde ' print(str2.rjust(20,'*')) #右對(duì)齊,指定長度為20 str3=' abcde ' print(str3.center(20,'*')) #居中對(duì)齊,指定長度為20 #執(zhí)行結(jié)果 # abcde ********** # ********* abcde # **** abcde *****
清除空白字符
.lstrip(),刪除左側(cè)的空白字符
.rstrip(),刪除末尾的空白字符
.strip(),刪除兩端的空白字符
>>> str=' abc ' >>> str.lstrip() #刪除左側(cè)空格 'abc ' >>> str.rstrip() #刪除右側(cè)空格 ' abc' >>> str.strip() #刪除兩側(cè)空格 'abc' >>>
檢查
.startswith(str),檢查字符串是否以指定字符開頭,是則返回Turn,否則返回False
.endswith(str),檢查字符串是否以指定字符結(jié)尾,是則返回Turn,否則為False
.isalpha(),檢查字符串是否都是字母,是返回Turn,否則返回False
.isdigit(),檢查字符串是否只包含數(shù)字,是返回Turn,否則返回False
.isalnum(),檢查字符串是否都是字母或數(shù)字,是返回Turn,否則返回False
.isspace(),檢查字符串是否只包含空格,是返回Turn,否則返回False
>>> str0='0123abcd' >>> str1='12345' >>> str2='abcdef' >>> str3=' ' >>> str0.startswith('0') #檢查是否包含指定字符串,是則返回True True >>> str0.startswith('6') #不包含則返回Flace False >>> str0.endswith('0') #檢查是否以指定字符串結(jié)束,不是返回Flace False >>> str0.endswith('d') #是則返回True True >>> str1.isalnum() #檢測指定字符串是否全是字母和數(shù)字組成 True >>> str2.isalpha() #檢測指定字符串是否全為字母 True >>> str0.isdigit() #檢測指定字符串是否全是數(shù)字 False >>> str3.isspace() #檢測指定字符串是否全為空格 True >>>
補(bǔ)充:16個(gè)常用函數(shù)
方法 | 描述 |
---|---|
str.len() | 返回str字符串的長度 |
str.lower() | 返回字符串str的副本,全部字符小寫 |
str.upper() | 返回字符串str的副本,全部字符大寫 |
str.islower() | 當(dāng)str全部字符都是小寫時(shí),返回True,否則返回False |
str.isupper() | 當(dāng)str全部字符都是大寫時(shí),返回True,否則返回False |
str.isprintable() | 當(dāng)str全部的字符都是可打印時(shí),返回 True,否則返回False |
str.isalnum() | 當(dāng)str只由字母或數(shù)字組成時(shí),返回True,否則返回False |
str.isalpha() | 當(dāng)str的所有字符都是字母組時(shí),返回True,否則返回False |
str.isascii() | 當(dāng)str的所有字符均在ascii碼內(nèi),返回True, 否則返回False |
str.isdecimal() | 當(dāng)str的所有字符均是Unicode數(shù)字或全角數(shù)字時(shí),返回True,否則返回False |
str.isdigit() | 當(dāng)str的所有字符都是Unicode數(shù)字或byte數(shù)字或全角數(shù)字或羅馬數(shù)字時(shí),返回True,否則返回False |
str.isnumeric() | 當(dāng)str的所有字符都是Unicode數(shù)字或全角數(shù)字或羅馬數(shù)字或漢字?jǐn)?shù)字時(shí),返回True, 否則返回False |
str.isidentifier() | 如果str是有效的Python標(biāo)識(shí)符返回True,否則返回False |
str.isspace() | 當(dāng)str所有字符都是空格時(shí),返回True, 否則返回False |
str.format() | 返回字符串str的一種排版格式 |
str.count(sub [, start [, end]]) | 返回str[start: end]中sub子串出現(xiàn)的次數(shù) |
總結(jié)
到此這篇關(guān)于python中字符串String及其常見操作指南(方法、函數(shù))的文章就介紹到這了,更多相關(guān)python字符串String常見操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中k-means和k-means++原理及實(shí)現(xiàn)
本文主要介紹了python中k-means和k-means++原理及實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Python標(biāo)準(zhǔn)庫sys庫常用功能詳解
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫sys庫常用功能詳解,sys是Python提供的程序與解釋器交互的標(biāo)準(zhǔn)庫,文章圍繞主題展開相關(guān)介紹,需要的朋友可以參考一下2022-07-07Blender Python編程實(shí)現(xiàn)程序化建模生成超形示例詳解
這篇文章主要為大家介紹了Blender Python編程實(shí)現(xiàn)程序化建模生成超形示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08解決jupyter notebook打不開無反應(yīng) 瀏覽器未啟動(dòng)的問題
這篇文章主要介紹了解決jupyter notebook打不開無反應(yīng) 瀏覽器未啟動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python自定義sorted排序?qū)崿F(xiàn)方法詳解
這篇文章主要介紹了Python自定義sorted排序?qū)崿F(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python自動(dòng)化辦公之定時(shí)發(fā)送郵件的實(shí)現(xiàn)
python中的schedule模塊可以使我們方便簡單的使用定時(shí)任務(wù),即在特定的時(shí)間自動(dòng)的執(zhí)行一些任務(wù)的功能,本文將用這一模塊實(shí)現(xiàn)郵件自動(dòng)發(fā)送,需要的可以參考一下2022-05-05