>>li=['cxk','cxk','kk','caibi']>>>''.join([str(i)fori" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python學(xué)習(xí)---超詳細(xì)字符串用法大全,好文推薦!

系統(tǒng) 1668 0

來自:Python編程與實(shí)戰(zhàn)(微信號:pthon1024),作者:Jerryning

沒有辦法轉(zhuǎn),整個(gè)復(fù)制下來了

本文要點(diǎn)

  • 字符串拼接

  • 拆分含有多種分隔符的字符串

  • 判讀字符串a(chǎn)是否以字符串b開頭或結(jié)尾

  • 調(diào)整字符串中文本的格式

  • 對字符串進(jìn)行左,右,居中對齊

  • 刪除字符串中不需要的字符

字符串拼接

實(shí)際場景:把列表中的數(shù)據(jù)拼接成一個(gè)字符串

解決方案:使用 str.join() 方法

          
            >>>?li?=?[
            
              'cxk',?
              
                'cxk',?
                
                  'kk',?
                  
                    'caibi']
                    
>>>? ''.join([str(i)? for?i? in?li])
'cxkcxkkkcaibi'

推薦使用生成器表達(dá)式,如果列表很大,可以節(jié)省很多內(nèi)存空間

          
            >>>?
            
              ''.join(str(i)?
              
                for?i?
                
                  in?li)
                  
'3cxkkkcaibi'

拆分含有多種分隔符的字符串

實(shí)際場景:把某個(gè)字符串依據(jù)分割符號拆分不同的字段,該字符串包含多種不同的分隔符

          
            s?=?
            
              "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
              

1.使用 python 中的 split() 方法,由于 split 一次處理一個(gè)分隔符,例如:

          
            >>>?res?=?s.split(
            
              ';')
              
>>>?res
[ 'ab',? 'fd/ft|fs,f\tdf.fss*dfd',? 'fs:uu}fsd']

所以我們需要根據(jù)字符串中的分隔符,依次分割,可以是 map 函數(shù)!

          
            >>>?list(map(
            
              lambda?x:?x.split(
              
                "|"),?res))
                
[[ 'ab'],?[ 'fd/ft',? 'fs,f\tdf.fss*dfd'],?[ 'fs:uu}fsd']]

結(jié)果變成了一個(gè)二維列表,而我們想要的結(jié)果是一維列表,怎么辦?

創(chuàng)建一個(gè)臨時(shí)列表保存結(jié)果。

          
            >>>?t?=?[]
            
>>>?list(map( lambda?x:?t.extend(x.split( "|")),?res))
[ None,? None,? None]
>>>?t
[ 'ab',? 'fd/ft',? 'fs,f\tdf.fss*dfd',? 'fs:uu}fsd']

結(jié)果符合我們的預(yù)期!接下來繼續(xù)處理剩余的分隔符,重復(fù)動(dòng)作,用 for 循環(huán)搞定!

最終代碼如下:

          
            
              
                def?
                
                  my_split
                  
                    (s,?ds):
                    
????res?=?[s]

???? for?d? in?ds:
????????t?=?[]
????????list(map( lambda?x:?t.extend(x.split(d)),?res))
????????res?=?t
???? return?res

將字符串和字符串中所有的分隔符傳入,結(jié)果如下:

          
            s?=?
            
              "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
              
print(my_split(s,? ";/|,.}:*\t"))

運(yùn)行結(jié)果:['ab', 'fd', 'ft', 'fs', 'f', 'df', 'fss', 'dfd', 'fs', 'uu', 'fsd']

2.使用 re 模塊的中 split() 方法

re() 也給我們提供了 split() 方法,可以一次性分隔字符串!

          
            
              import?re
              

s?=? "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd"
print(re.split( '[;/|,.}:*\t]',?s))

結(jié)果一致,是不是很簡單粗暴!

判讀字符串a(chǎn)是否以字符串b開頭或結(jié)尾

實(shí)際場景:比如某目錄下有一系列文件:

Python學(xué)習(xí)---超詳細(xì)字符串用法大全,好文推薦!_第1張圖片

編寫程序給其中所有 .txt 文件和 .py 文件加上用戶可執(zhí)行權(quán)限

解決方案:

使用字符串 str.startswith() 和 str.endswith()

找出以 .txt 和 .py 結(jié)尾的文件,其接受一個(gè)元組

          
            >>>?
            
              import?os
              
>>>?os.listdir( ".")
[ 'app',? 'config',? 'requirements.txt',? 'run.py',? '__pycache__',? 'gunicorn.conf.py',? 'chromedriver',? 'login_after2.png',? 'readme.txt',? 'slide.png',? 'test.py',? 'logs',? 'chrome-linux.zip',? 'gunicorn.pid',? 'asgi.py',? 'chrome-linux']

>>>?[name? for?name? in?os.listdir( ".")? if?name.endswith(( ".txt",? ".py"))]
[ 'requirements.txt',? 'run.py',? 'gunicorn.conf.py',? 'readme.txt',? 'test.py',? 'asgi.py']

調(diào)整字符串中文本的格式

實(shí)際案列:例如在日志文件中,其中日期格式為'yyyy-mm-dd':

Python學(xué)習(xí)---超詳細(xì)字符串用法大全,好文推薦!_第2張圖片

我們想把其中的日期改為美國日期格式'mm/dd/yyyy'.比如 2019-06-12 改成 06/12/2019 格式

解決方案:使用 re 中的 sub() 方法做字符串替換

利用正則表達(dá)式中的捕獲組,捕獲每個(gè)部分的內(nèi)容,然后在替換在替換的字符串中調(diào)整各個(gè)捕獲組的順序!

代碼如下:

          
            
              import?re
              

with?open( "info.log",? "r",?encoding= "utf-8")? as?f:
????file?=?f.read()

print(re.sub( '(\d{4})-(\d{2})-(\d{2})',? r'\2/\3/\1',?file))

捕獲組中每組需要用括號括起來,然后默認(rèn)從左至右分為組1, 組2…

下一個(gè)參數(shù)是我們要替換的格式,用 1,2,3 分別表示組1, 組2…

運(yùn)行結(jié)果如下:

Python學(xué)習(xí)---超詳細(xì)字符串用法大全,好文推薦!_第3張圖片

對字符串進(jìn)行左,右,居中對齊

解決方案:

1.使用字符串中的 str.ljust(), str.rjust(), str.center() 進(jìn)行左右居中對齊!

以上三種方法的基本用法:

          
            >>>?s?=?
            
              'abc'
              
>>>?s.ljust( 20,? '=')
'abc================='
>>>?s.ljust( 20)
'abc???????????'

三種方法都可以設(shè)置默認(rèn)填充值

2.使用內(nèi)置的 format() 方法

          
            >>>?format(s,?
            
              ">20")
              
'?????????????????abc'
>>>?format(s,? "<20")
'abc?????????????????'
>>>?format(s,? "^20")
'????????abc?????????'

刪除字符串中不需要的字符

實(shí)際案例

  1. 過濾掉用戶輸入中前后多余的空白字符:“ ? ?nick2008@gmail.com ? ?”

  2. 過濾掉某 windows 下編輯文本中的 “\r” :“hello world \r\n”

  3. 去掉文本中的 unicode 組合符號(音調(diào)):nǐ hǎo mā

解決方案

  • 使用 str.strip(), str.lstrip(), str.rstrip() 方法去掉字符串兩端字符

  • 使用 str.replace() 或者正則中的 re.sub()

  • 使用字符串中 str.translate() 方法,可以同時(shí)刪除多個(gè)不同的字符

我踏過的,是不曾虛度的昨天,我去向的 ,永遠(yuǎn)是比今天更好的遠(yuǎn)方


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 96久久久久久 | 午夜影视免费 | 五月天婷婷缴情五月免费观看 | 九九精品免费 | 精品一区二区三区在线视频 | 高清男女性高爱潮免费 | 中国一级特黄 | 26uuu最新地址 | 蜜桃视频在线播放 | 欧美精品国产综合久久 | 日本一区二区高清不卡 | 国产成人精品高清在线观看99 | 亚洲区视频 | 99精品国产免费观看视频 | 看毛片网站 | 色黄视频免费观看 | 涩涩屋av| 婷婷在线免费观看 | 久久一日本道色综合久久m 亚洲三级视频 | 国产丝袜av | 亚洲精品人成网线在线 | 999国产视频 | 日日干狠狠干 | 国产高清视频 | 国产精品美女www爽爽爽视频 | 中文字幕国产日韩 | wankzhd| 91看片淫黄大片在看 | 婷婷色综合 | 一级毛片免费电影 | 黄色小视频在线观看 | 欧美一级特黄毛片免费 | 91精品国产91久久久久久最新 | 亚洲国产精品久久综合 | 三级免费网 | 黄色短视频在线免费观看 | 美女求操| 成人 日韩 在线 | 日本无码成人片在线观看波多 | 97碰碰碰| 日韩在线观看中文字幕 |