国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Python中字符串的處理技巧分享

來源:懂視網 責編:小采 時間:2020-11-27 14:26:35
文檔

Python中字符串的處理技巧分享

Python中字符串的處理技巧分享:這篇文章給大家分享了Python中字符串的處理技巧,包括拆分含有多種分隔符的字符串、判斷字符串a是否以字符串b開頭或結尾、調整字符串中文本的格式已經將多個小字符串拼接成一個大的字符串等,感興趣的朋友們可以通過閱讀下文來學習。一、如何拆分含有多種分隔
推薦度:
導讀Python中字符串的處理技巧分享:這篇文章給大家分享了Python中字符串的處理技巧,包括拆分含有多種分隔符的字符串、判斷字符串a是否以字符串b開頭或結尾、調整字符串中文本的格式已經將多個小字符串拼接成一個大的字符串等,感興趣的朋友們可以通過閱讀下文來學習。一、如何拆分含有多種分隔

這篇文章給大家分享了Python中字符串的處理技巧,包括拆分含有多種分隔符的字符串、判斷字符串a是否以字符串b開頭或結尾、調整字符串中文本的格式已經將多個小字符串拼接成一個大的字符串等,感興趣的朋友們可以通過閱讀下文來學習。

一、如何拆分含有多種分隔符的字符串?

實際案例

我們要把某個字符串依據分隔符號拆分不同的字符段,該字符串包含多種不同的分隔符,例如:

s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd'

其中<,>,<;>,<|>,< >都是分隔符,如何處理?

解決方案

連續使用split()方法,每次處理一種分隔符

# 使用Python2 def mySplit(s,ds): res = [s] for d in ds: t = [] map(lambda x: t.extend(x.split(d)), res) res = t return [x for x in res if x] s = 'asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd' result = mySplit(s, ';,|	') print(result)
C:UsersAdministrator>C:PythonPython27python.exe E:python-intensive-trainings2.py ['asd', 'aad', 'dasd', 'dasd', 'sdasd', 'asd', 'Adas', 'sdasd', 'Asdasd', 'd', 'asd']

使用正則表達式的re.split()方法,一次性拆分字符串

>>> import re >>> re.split('[,;	|]+','asd;aad|dasd|dasd,sdasd|asd,,Adas|sdasd;Asdasd,d|asd') ['asd', 'aad', 'dasd', 'dasd', 'sdasd', 'asd', 'Adas', 'sdasd', 'Asdasd', 'd', 'asd']

二、如何判斷字符串a是否以字符串b開頭或結尾?

實際案例

如某目錄有如下文件:

quicksort.c graph.py heap.java install.sh stack.cpp ......

現在需要給.sh.py結尾的文件夾上可執行權限

解決方案

使用字符串的startswith()endswith()方法

>>> import os, stat >>> os.listdir('./') ['heap.java', 'quicksort.c', 'stack.cpp', 'install.sh', 'graph.py'] >>> [name for name in os.listdir('./') if name.endswith(('.sh','.py'))] ['install.sh', 'graph.py'] >>> os.chmod('install.sh', os.stat('install.sh').st_mode | stat.S_IXUSR)
[root@iZ28i253je0Z t]# ls -l install.sh -rwxr--r-- 1 root root 0 Sep 15 18:13 install.sh

三、如何調整字符串中文本的格式?

實際案例

某軟件的日志文件,其中日期格式為yyy-mm-dd:

2016-09-15 18:27:26 statu unpacked python3-pip:all 2016-09-15 19:27:26 statu half-configured python3-pip:all 2016-09-15 20:27:26 statu installd python3-pip:all 2016-09-15 21:27:26 configure asdasdasdas:all python3-pip:all

需要把其中日期改為美國日期的格式mm/dd/yyy, 2016-09-15 --> 09/15/2016,要如何處理?

解決方案

使用正則表達式re.sub()方法做字符串替換

利用正則表達式的捕獲組,捕獲每個部分內容,在替換字符串中各個捕獲組的順序。

>>> log = '2016-09-15 18:27:26 statu unpacked python3-pip:all' >>> import re # 按順序 >>> re.sub('(d{4})-(d{2})-(d{2})', r'2/3/1' , log) '09/15/2016 18:27:26 statu unpacked python3-pip:all' # 使用正則表達式的分組 >>> re.sub('(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})', r'g<month>/g<day>/g<year>' , log) '09/15/2016 18:27:26 statu unpacked python3-pip:all'

四、如何將多個小字符串拼接成一個大的字符串?

實際案例

在設計某網絡程序時,我們自定義了一個基于UDP的網絡協議,按照固定次序向服務器傳遞一系列參數:

hwDetect: "<0112>" gxDepthBits: "<32>" gxResolution: "<1024x768>" gxRefresh: "<60>" fullAlpha: "<1>" lodDist: "<100.0>" DistCull: "<500.0>"

在程序中我們將各個參數按次序收集到列表中:

["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]

最終我們要把各個參數拼接成一個數據包進行發送:

"<0112><32><1024x768><60><1><100.0><500.0>"

解決方案

迭代列表,連續使用'+'操作依次拼接每一個字符串

>>> for n in ["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]: ... result += n ... >>> result '<0112><32><1024x768><60><1><100.0><500.0>'

使用str.join()方法,更加快速的拼接列表中所有字符串

>>> result = ''.join(["<0112>","<32>","<1024x768>","<60>","<1>","<100.0>","<500.0>"]) >>> result '<0112><32><1024x768><60><1><100.0><500.0>'

如果列表中有數字,可以使用生成器進行轉換:

>>> hello = [222,'sd',232,'2e',0.2] >>> ''.join(str(x) for x in hello) '222sd2322e0.2'

五、如何對字符串進行左, 右, 居中對齊?

實際案例

某個字典中存儲了一系列屬性值:

{ 'ip':'127.0.0.1', 'blog': 'www.anshengme.com', 'title': 'Hello world', 'port': '80' }

在程序中,我們想以以下格式將其內容輸出,如何處理?

ip : 127.0.0.1 blog : www.anshengme.com title : Hello world port : 80

解決方案

使用字符串的str.ljust() , str.rjust,str.cente()進行左右居中對齊

>>> info = {'ip':'127.0.0.1','blog': 'www.anshengme.com','title': 'Hello world','port': '80'} # 獲取字典中的keys最大長度 >>> max(map(len, info.keys())) 5 >>> w = max(map(len, info.keys())) >>> for k in info: ... print(k.ljust(w), ':',info[k]) ... # 獲取到的結果 port : 80 blog : www.anshengme.com ip : 127.0.0.1 title : Hello world

使用format()方法,傳遞類似'<20','>20','^20'參數完成同樣任務

>>> for k in info: ... print(format(k,'^'+str(w)), ':',info[k]) ... port : 80 blog : www.anshengme.com ip : 127.0.0.1 title : Hello world

六、如何去掉字符串中不需要的字符?

實際案例

過濾掉用戶輸入卡后多余的空白字符: anshengm.com@gmail.com

過濾某windows下編輯文本中的' ': hello word

去掉文本中的unicode組合符號(音調): ‘ni? ha?o, chi? fa?n'

解決方案

字符串strip() , lstrip(),rstrip()方法去掉字符串兩端字符

>>> email = ' anshengm.com@gmail.com ' >>> email.strip() 'anshengm.com@gmail.com' >>> email.lstrip() 'anshengm.com@gmail.com ' >>> email.rstrip() ' anshengm.com@gmail.com' >>>

刪除某個固定位置的字符,可以使用切片+拼接的方法

>>> s[:3] + s[4:] 'abc123'

字符串的replace()方法或正則表達式re.sub()刪除任意位置字符

>>> s = '	abc	123	xyz' >>> s.replace('	', '') 'abc123xyz'

使用re.sub()刪除多個

>>> import re >>> re.sub('[	
]','', string) 'abc123xyzopq'

字符串translate()方法,可以同時刪除多種不同字符

>>> import string >>> s = 'abc123xyz' >>> s.translate(string.maketrans('abcxyz','xyzabc')) 'xyz123abc'
>>> s = '
asd	23Ads' >>> s.translate(None, '
	') 'asd23Ads'
# python2.7 >>> i = u'ni? ha?o, chi? fa?n' >>> i u'niu0301 hau030co, chiu0304 fau0300n' >>> i.translate(dict.fromkeys([0x0301, 0x030c, 0x0304, 0x0300])) u'ni hao, chi fan'

總結

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python中字符串的處理技巧分享

Python中字符串的處理技巧分享:這篇文章給大家分享了Python中字符串的處理技巧,包括拆分含有多種分隔符的字符串、判斷字符串a是否以字符串b開頭或結尾、調整字符串中文本的格式已經將多個小字符串拼接成一個大的字符串等,感興趣的朋友們可以通過閱讀下文來學習。一、如何拆分含有多種分隔
推薦度:
標簽: 方法 技巧 解決
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top 主站蜘蛛池模板: 3a毛片 | 国产在线观看精品一区二区三区91 | 国产精品特级毛片一区二区三区 | 国产在线播放一区二区 | 久久人精品 | 91色老99久久九九爱精品 | 人成精品视频三区二区一区 | 99精品欧美一区二区三区综合在线 | 亚洲第一视频区 | 亚洲一区二区三区四区视频 | 欧美在线视频一区在线观看 | 久久国产精品高清一区二区三区 | 国产日韩欧美精品在线 | 欧美 日韩 视频 | 国产正在播放 | 五月婷婷中文字幕 | 国产成人精品日本亚洲11 | 亚欧成人毛片一区二区三区四区 | 亚洲一区色图 | 91久久国产综合精品女同国语 | 免费h视频在线观看 | 久久成人国产精品一区二区 | 国产成人精品视频 | 国产精品亚洲综合 | 黄色一级视频免费看 | 亚洲精品成人久久久影院 | 日韩aa在线观看 | 国产区视频在线观看 | 91大神在线精品视频一区 | 久久一区二区三区免费 | 老子影院午夜久久亚洲 | 久艹网 | 青青国产成人久久91网 | 日韩欧美国产中文字幕 | 欧美在线网址 | 国产福利一区二区三区在线视频 | 国产91丝袜在线播放动漫 | 日本黄 色 成 年 人免费观看 | 国产精品免费视频播放 | 国产精品网址 | 欧美国产日韩一区二区三区 |