Python字符串处理的8招秘籍(小结)


Posted in Python onAugust 13, 2019

Python的字符串处理,在爬虫的数据解析、大数据的文本清洗,以及普通文件处理等方面应用非常广泛,而且Python对字符串的处理内置了很多高效的函数,功能非常强大、使用非常方便。今天我就把字符串处理时用到最多的方法总结分享给大家,希望大家可以轻松应对字符串处理。

1.字符串的切片和相乘

(1)切片

str='Monday is a busy day' 
print(str[0:7]) #表示取第一个到第七个的字符串 
print(str[-3:]) #表示取从倒数第三个字符开始到结尾的字符串 
print(str[::])  #复制字符串

(2)相乘

当我们编写Python代码时要分隔符,此时用字符串的乘法操作就很容易实现。

line='*'*30 
print(line) 
>>******************************

2.字符串的分割

(1)普通的分割,用split函数,但是split只能做非常简单的分割,而且不支持多个分隔。

phone='400-800-800-1234' 
print(phone.split('-')) 
>>['400', '800', '800', '1234']

(2)复杂的分割,r表示不转义,分隔符可以是「;」,或者「,」,或者空格后面跟0个多个额外的空格,然后按照这个模式去分割。

line='hello world; python, I ,like,  it' 
import re 
print(re.split(r'[;,s]\s*',line)) 
>>>['hello world', 'python', 'I ', 'like', 'it']

3.字符串的连接和合并

(1)连接,两个字符可以很方便的通过“+”连接起来

str1='Hello' 
str2='World' 
new_str=str1+str2 
print(new_str) 
>>>HelloWorld

(2)合并,用join方法

url=['www','python','org'] 
print('.'.join(url)) 
>>>www.python.org

4.判断字符串是否以指定前缀、后缀结尾

假设我们要查一个文件的名字是以什么开头或者什么结尾?

filename='trace.h' 
print(filename.endswith('h')) 
>>True 
print(filename.startswith('trace')) 
>>True

5.字符串的查找和匹配

(1)一般查找

利用find方法可以很方便的在长的字符串里面查找子字符串,会返回字符串所在位置的索引,若找不到返回-1

str1 = "this is string example....wow!!!" 
str2 = "exam" 
print(str1.find(str2))   # 15 
print(str1.find(str2, 10)) # 15 
print(str1.find(str2, 40)) # -1

(2)复杂的匹配,就需要用到正则表达式。

mydate='11/27/2016' 
import re 
if re.match(r'\d+/\d+/\d+',mydate): 
  print('ok.match') 
else: 
  print('not match') 
 
>>>ok.match

6.统计字符串里某个字符出现的次数

str = "thing example....wow!!!" 
print(str.count('i', 0, 5)) # 1 
print(str.count('e')) # 2

7.字符串的替换

(1)普通的替换,用replace方法就可以了

text='python is an easy to learn,powerful programming language.' 
print(text.replace('learn','study')) 
>>>python is an easy to study,powerful programming language.

(2)复杂的替换,需要用到re模块的sub函数

students='Boy 103,girl 105' 
import re 
print(re.sub(r'\d+','100',students)) 
>>>Boy 100,girl 100

8.去掉字符串中一些特定的字符

(1)去空格,对文本处理的时候比如从文件中读取一行,然后需要去除每一行的空格、table或者是换行符。

str = ' python str ' 
print(str) 
# 去首尾空格 
print(str.strip()) 
# 去左侧空格 
print(str.lstrip()) 
# 去右侧空格 
print(str.rstrip())

(2)复杂的文本清理,可以利用str.translate。

比如先构建一个转换表,table是一个翻译表,表示把“to”转成大写的“TO”,然后在old_str里面去掉‘12345',然后剩下的字符串再经过table翻译。

instr = 'to' 
outstr = 'TO' 
old_str = 'Hello world , welcome to use Python. 123456' 
remove = '12345' 
table = str.maketrans(instr,outstr,remove) 
new_str = old_str.translate(table) 
print(new_str) 
>>>HellO wOrld , welcOme TO use PyThOn. 6

总结

平时我们使用Python都是处理一些脚本,其中使用频率最大的就是字符串的处理方面,因此给大家整理了这些常用的字符串处理时使用的方法,希望对大家有用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
django 解决manage.py migrate无效的问题
May 27 Python
Python重新加载模块的实现方法
Oct 16 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
解决python中无法自动补全代码的问题
Dec 04 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Django基础知识 web框架的本质详解
Jul 18 Python
python redis 批量设置过期key过程解析
Nov 26 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
用python获取txt文件中关键字的数量
Dec 24 Python
python实现批量修改服务器密码的方法
Aug 13 #Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 #Python
Python实现微信翻译机器人的方法
Aug 13 #Python
python读写csv文件的方法
Aug 13 #Python
python根据多个文件名批量查找文件
Aug 13 #Python
详解django实现自定义manage命令的扩展
Aug 13 #Python
Python一键安装全部依赖包的方法
Aug 12 #Python
You might like
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Python模拟百度登录实例详解
2016/01/20 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
python识别验证码图片实例详解
2020/02/17 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
计算机专业毕业生推荐信
2013/11/25 职场文书
李培根演讲稿
2014/05/22 职场文书
一般党员对照检查材料
2014/09/24 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书