一次性汇总了 30+ 字符串常用处理方法
今天這篇推文我們就匯總下Python中常用的字符串處理小技巧,字符串在Python數(shù)據(jù)處理中是非常常見且極易忽略的常用數(shù)據(jù)類型,且Python本身也提供大量運算符、函數(shù)和方法來處理字符串。話不多說,接下來我們就匯總下字符串處理小技巧(ps:都是小編經(jīng)常用到的處理技巧,可能不是很全哦)
字符串常用操作
1、+ 操作
這個操作相對簡單,就是對字符串進行組合,如下:
a?=?"Data" b?=?"Charm" print(a+b)? #?DataCharm2、* 操作
* 操作一般都是重復字符串的個數(shù),舉例如下:
a="DataCharm" print(a*3) #?DataCharmDataCharmDataCharm3、in 操作
這個操作在我的數(shù)據(jù)處理過程中經(jīng)常使用到,用于判斷某個字符是否在指定的字符串中,進而進行下一步的操作,這個和pandas數(shù)據(jù)篩選結(jié)合使用,可以快速選擇出對應(yīng)的數(shù)據(jù)。
s?=?"DataCharm" print(s?in?"The?best?place?to?learn?Python?is?DataCharm") #True根據(jù)返回的 True 或False 結(jié)果就可以靈活進數(shù)據(jù)判斷和數(shù)據(jù)選擇了(結(jié)合pandas布爾類型),而 not in 則是 in 的反操作,其他都是一樣的。
4、[] 和[:] 通過索引獲取字符串中字符
這兩個字符串操作是使用頻次較多的操作了:
[] 可通過具體的索引號選擇字符串中的字符;
[:] 可以拆分字符串,進而獲取字符串中的一部分。
下面我們通過具體例子進講解,首先,有字符串如下(標注了索引號和反索引號,注意:python正序索引是從0開始,倒序索引從-1開始)
接下來的內(nèi)容我們將直接通過代碼進行展示:
正序取數(shù)
s?=?"DataCharm" s[0] #'D' s[1] #'a' #?一旦取值超過索引范圍,則會顯示出錯,如下: s[9] #IndexError:?string?index?out?of?range倒序取數(shù)
s?=?"DataCharm" s[-1] #'m'字符串的切片處理這一部分為字符串常用部分,希望小伙伴們可以仔細閱讀理解
s?=?"DataCharm" s[0:4] #'Data's[:4] #'Data'還可以:
s[:4]?+?s[4:] #'DataCharm's[:4]?+?s[4:]?==?s #True對于倒序:
s?=?"DataCharm" s[-5:-2] #'Cha' #相當于正序取數(shù)如下: s[4:7] #'Cha's[-5:-2]?==?s[4:7] #True切片中我們還可以指定步長
s?=?"DataCharm" s[0:6:2]?#?索引位置0~5,每隔1個進行取數(shù) #'DtC'將第一個和第二個索引可以省略,并且分別默認為第一個和最后一個字符:
s?=?"DataCharm" s[::2]#?忽略第一個和第二個索引 #?'DtCam's[2::2]#?忽略第二個索引,默認為最后一個字符 #?'tCam'指定一個負的步長,這種情況下,字符串將倒序取值,且第一個索引應(yīng)大于第二個索引:
s?=?"DataCharm" s[9:0:-2] #?'maCt's[::-2] #?'maCtD'當設(shè)置為-1時,則將原字符串進行反轉(zhuǎn),這也是較常用的操作之一哦,如下:
s?=?"DataCharm" s[::-1] #?'mrahCataD'字符串常用內(nèi)置方法
python 字符串操作內(nèi)置了許多處理方法,這里我們只列舉出我在實際使用中常用的的內(nèi)置方法。
s.capitalize():把字符串的第一個字符大寫,其他字符串小寫
s?=?"dataCharm" s.capitalize() #'Datacharm's.lower():轉(zhuǎn)換 string 中所有大寫字符為小寫
s?=?"DataCharm" s.lower() #'datacharm's.swapcase():將字符串中大寫的變小寫,小寫的變大寫
s?=?"DataCharm" s.swapcase()? #?'dATAcHARM's.title():將所有單詞都是以大寫開始,其余字母均為小寫
s?=?"data?charm" s.title() #'Data?Charm's.upper():將 string 中的小寫字母為大寫
s?=?"datacharm" s.upper() #'DATACHARM's.endswith(obj)和 s.startswith(obj):檢查字符串是否是以 obj 開頭(開頭),是則返回 True,否則返回 False
這兩個字符串內(nèi)置方法為常用方法,特別是數(shù)據(jù)選擇過程中,當然和pandas結(jié)合,實現(xiàn)高效取數(shù)。
s?=?"DataCharm" s.startswith("Data") #True s.endswith("Data") #Falses.strip([chars])、 s.lstrip([chars])和 s.rstrip([chars]):刪除 string 字符串開頭和結(jié)尾、開頭、結(jié)尾的指定的字符(chars)(默認為空格)
該方法為較常使用在數(shù)據(jù)清洗過程中,如爬取的字符串數(shù)據(jù)需要去除多余空格。
s?=?"?DataCharm?" s.strip() #'DataCharm' s.lstrip() #'DataCharm?' s.rstrip() #'?DataCharm's.find(str, beg=0, end=len(s)):檢測str是否包含在s 中,如果在 beg 和 end 指定范圍,則檢查是否包含在指定范圍內(nèi),如果是返回開始的索引值,否則返回-1。
s.count(str, beg=0, end=len(s)):返回 str 在 s 里面出現(xiàn)的次數(shù),如果 在beg 或者 end 指定指定范圍內(nèi),則返回 str 出現(xiàn)的次數(shù)
s.split("str"):以指定字符(str)分割字符串,返回多個字符串組成的列表。
字符串和列表之間的轉(zhuǎn)換
這個小技巧也是我在數(shù)據(jù)處理過程中經(jīng)常使用的,所以單獨進行講解。
將列表轉(zhuǎn)換成字符串,我們可以使用 .join() 方法操作
list_test?=?['foo',?'bar',?'baz',?'qux'] str_from_list?=?"?".join(list_test) str_from_list #?'foo?bar?baz?qux'type(str_from_list) #?str將字符串轉(zhuǎn)換成列表,則直接使用s.split()方法即可
str_test?=?"foo?bar?baz?qux" list_from_str?=?str_test.split("?") list_from_str #['foo',?'bar',?'baz',?'qux']type(list_from_str) #list字符串格式化處理
這里建議大家使用str.format() 方法進行字符串格式化輸出。str.format()基本格式為
"xxx{?}xxx".format(參數(shù))這里我們列出幾種常見的形式,具體詳細的大家可自行搜索(主要是太多,我列出常用的幾個即可)
#方式一: '{0},?{1},?{2}'.format('a',?'b',?'c') #方式二: '{},?{},?{}'.format('a',?'b',?'c')指定數(shù)字類型
b: 輸出整數(shù)的二進制方式;
c: 輸出整數(shù)對應(yīng)的Unicode字符;
d: 輸出整數(shù)的十進制方式;
o: 輸出整數(shù)的八進制方式;
x: 輸出整數(shù)的小寫十六進制方式;
X: 輸出整數(shù)的大寫十六進制方式;
保留兩位小數(shù)(使用較多)
'π?is?{:.2f}'.format(3.1415926) #?'π?is?3.14'數(shù)字千位符格式
'{:,}'.format(123456789) #'123,456,789'百分比表示
"{:.0%}".format(3/10) #'30%' "{:.3%}".format(3/10) #'30.000%'日期格式表示
import?datetime date?=?datetime.datetime(2020,?2,?1,?23,?20,?58) '{:%Y-%m-%d?%H:%M:%S}'.format(date) #'2020-02-01?23:20:58'總結(jié)
以上就是關(guān)于我在實際使用過程中常用的Python字符串操作方法,由于是小編常用到的,可能不是很全,但絕對是常用操作,希望對大家有所幫助,更多Python 字符串操作,小伙伴們可自行搜索哦!
推薦閱讀 誤執(zhí)行了rm -fr /*之后,除了跑路還能怎么辦?!程序員必備58個網(wǎng)站匯總大幅提高生產(chǎn)力:你需要了解的十大Jupyter Lab插件總結(jié)
以上是生活随笔為你收集整理的一次性汇总了 30+ 字符串常用处理方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 过年装X神器,快速获取 wifi 密码!
- 下一篇: 讲真!朋友圈别设置三天可见!