''' 实际案例: 咱们要把某个字符串依据分隔符号拆分不一样的字段,该字符串包含多种不一样的分隔符,例如: 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}