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.判断字符串是否以指定前缀、后缀结尾
假设我们要查一个文件的名字是以什么开头或者什么结尾"htmlcode">
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都是处理一些脚本,其中使用频率最大的就是字符串的处理方面,因此给大家整理了这些常用的字符串处理时使用的方法,希望对大家有用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]