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