''' 實際案例: 咱們要把某個字符串依據分隔符號拆分不一樣的字段,該字符串包含多種不一樣的分隔符,例如: s=’ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz’,其中<,>, <;>, <|>, <\t>都是分隔符號,如何處理? 解決方案: 1.連續使用str.split(),每一次處理一種分隔符號; 2.使用正則表達式的re.split(),一次性拆分字符串。 '''
['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']
Out[3]:
['ab', 'cd', 'efg', 'hi', 'jkl', 'mn', 'opq', 'rst', 'uvw', 'xyz']
''' 實際案例:某文件系統中目錄下有一系列文件,a.c,b.sh,d.py,e.java... 編寫程序給其中因此的.sh文件和.py文件加上用戶可執行權限 解決方案:使用字符串的str.startwith()和str.endswith()方法, 注意:多個匹配時參數使用元組 '''
Out[5]:
['.ipynb_checkpoints',
'graph.py',
'stack.cpp',
'heap.java',
'install.sh',
'quicksort.c',
'複雜場景下字符串處理相關問題與解決技巧.ipynb']
Out[8]:
['graph.py', 'install.sh']
總用量 24
-rwxr--r-- 1 zhou zhou 0 12月 14 14:55 graph.py*
-rw-r--r-- 1 zhou zhou 0 12月 14 14:56 heap.java
-rw-r--r-- 1 zhou zhou 0 12月 14 14:56 install.sh
-rw-r--r-- 1 zhou zhou 1 12月 14 14:55 quicksort.c
-rw-r--r-- 1 zhou zhou 0 12月 14 14:56 stack.cpp
-rw-r--r-- 1 zhou zhou 17606 12月 14 18:03 複雜場景下字符串處理相關問題與解決技巧.ipynb
''' 案例:把'yyyy-mm-dd'改爲'mm/dd/yyyy' 解決方案:使用正則表達式re.sub()方法作字符串替換,利用正則表達式的捕獲組,捕獲每一個部份內容,在替換字符串中調整各個捕獲組的順序 '''
update-alternatives 2018-12-10 09:40:25: run with --install /usr/share/gnome-shell/theme/gdm3.css gdm3.css /usr/share/gnome-shell/theme/ubuntu.css 10
update-alternatives 2018-12-10 09:40:33: run with --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/firefox 40
update-alternatives 2018-12-10 09:40:33: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 40
update-alternatives 2018-12-10 09:42:23: run with --install /usr/bin/gstreamer-codec-install gstreamer-codec-install /usr/lib/packagekit/pk-gstreamer-install 80
update-alternatives 2018-12-10 09:43:43: run with --install /usr/bin/x-window-manager x-window-manager /usr/bin/mutter 60 --slave /usr/share/man/man1/x-window-manager.1.gz x-window-manager.1.gz /usr/share/man/man1/mutter.1.gz
update-alternatives 12/10/2018 09:40:25: run with --install /usr/share/gnome-shell/theme/gdm3.css gdm3.css /usr/share/gnome-shell/theme/ubuntu.css 10
update-alternatives 12/10/2018 09:40:33: run with --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/firefox 40
update-alternatives 12/10/2018 09:40:33: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 40
update-alternatives 12/10/2018 09:42:23: run with --install /usr/bin/gstreamer-codec-install gstreamer-codec-install /usr/lib/packagekit/pk-gstreamer-install 80
update-alternatives 12/10/2018 09:43:43: run with --install /usr/bin/x-window-manager x-window-manager /usr/bin/mutter 60 --slave /usr/share/man/man1/x-window-manager.1.gz x-window-manager.1.gz /usr/share/man/man1/mutter.1.gz
update-alternatives 12/10/2018 09:40:25: run with --install /usr/share/gnome-shell/theme/gdm3.css gdm3.css /usr/share/gnome-shell/theme/ubuntu.css 10
update-alternatives 12/10/2018 09:40:33: run with --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/firefox 40
update-alternatives 12/10/2018 09:40:33: run with --install /usr/bin/x-www-browser x-www-browser /usr/bin/firefox 40
update-alternatives 12/10/2018 09:42:23: run with --install /usr/bin/gstreamer-codec-install gstreamer-codec-install /usr/lib/packagekit/pk-gstreamer-install 80
update-alternatives 12/10/2018 09:43:43: run with --install /usr/bin/x-window-manager x-window-manager /usr/bin/mutter 60 --slave /usr/share/man/man1/x-window-manager.1.gz x-window-manager.1.gz /usr/share/man/man1/mutter.1.gz
''' 一.迭代列表,連續使用'+'操做依次拼接每個字符串 二.使用str.join()方法,更加快速的拼接列表中的全部字符串 '''
<0112>
<0112><32>
<0112><32><1024x768>
<0112><32><1024x768><60>
<0112><32><1024x768><60><1>
<0112><32><1024x768><60><1><100.0>
<0112><32><1024x768><60><1><100.0><500.0>
Out[25]:
'<0112><32><1024x768><60><1><100.0><500.0>'
Out[26]:
'<0112><32><1024x768><60><1><100.0><500.0>'
''' 案例: { "a":100, "as":0.01, "wer":500.0, "cc":12 } 處理成: "a" :100, "as" :0.01, "wer":500.0, "cc" :12 解決方案: 1.使用字符串的str.ljust(),str.rjust(),str.center()進行左右中對齊 2.使用format()方法,傳遞相似'<20','>20','^20'參數完成一樣任務 '''
Out[41]:
{'a': 100, 'as': 0.01, 'wer': 500.0, 'cc': 12}
Out[42]:
dict_keys(['a', 'as', 'wer', 'cc'])
a : 100
as : 0.01
wer : 500.0
cc : 12
''' 案例: 1.過濾掉用戶輸入中先後多餘的空白字符:' hello@qq.com ' 2.過濾windows下編輯文本中的'\r':'hello world\r\n' 3.去掉文本中的unicode符號"āáǎà ōóǒò ēéěè īíǐì" 方案: 1.字符串strip(),lstrip(),rstip()去掉字符串兩端字符 2.刪除單個固定位置的字符,可使用切片+拼接的方式 3.字符串的replace()方法或正則表達式re.sub()刪除任意位置字符 4.字符串translate()方法,能夠同時刪除多種不一樣字符 '''
Out[62]:
{97: 120, 98: 121, 99: 122, 120: 97, 121: 98, 122: 99}