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

1.字符串的切片和相乘

(1)切片

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

(2)相乘

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

line='*'*30print(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'))>>Trueprint(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字符串处理的8招秘籍相关推荐

  1. 独家 | 秘籍:10个Python字符串处理技巧(附代码)

    作者:马修·梅奥 翻译:陈之炎 校对:和中华 本文约1600字,建议阅读7分钟. 本文为你介绍利用Python处理字符串的一些基本操作. 在探寻文本分析途径时却不知从何下手,该怎么办?那么可以通过这个 ...

  2. python split()方法_秘籍:10个Python字符串处理技巧(附代码)

    作者:马修·梅奥 翻译:陈之炎 校对:和中华 本文约1600字,建议阅读7分钟. 本文为你介绍利用Python处理字符串的一些基本操作. 在探寻文本分析途径时却不知从何下手,该怎么办?那么可以通过这个 ...

  3. python 字符串格式化是打印不同类型更简单一些

    Python 支持格式化字符串的输出 与 C 中 sprintf 函数一样的语法 下面写3中不同类型的数据合在一起打印 name = "张三丰" height = 1.88 wei ...

  4. Python——字符串大小写转化

    python字符串得一些用法: 1.输入一个字符串,将其单词首字母由小写变成大写 当所有字母都为大写时,结果也是将首字母变成大写,其余仍然是小写 2.将小写字母转化为大写字母,大写字母仍然转化为大写字 ...

  5. 真香!精心整理了 100+Python 字符串常用操作

    来源丨萝卜大杂烩 作者丨周萝卜 字符串作为平时使用最多的数据类型,其常用的操作我们还是很有必要熟记于心的,本文整理了多种字符串的操作的案例,还是非常用心,记得点赞收藏~ 字符串切片操作 test = ...

  6. Python字符串方法:字符串拼接、截取、转数字

    这节课程我们主要讲有关Python字符串的用法,包括字符串的拼接.字符串怎么转数字.字符串的格式化.字符串函数等内容. 1.Python字符串的拼接 拼接方式很简单-我们可以用"+" ...

  7. Python字符串居然可以这样玩 到底怎么做到的 年薪50w程序员揭晓

    Python如何比较字符串?由于字符串是Python中最常用的数据类型,所以我们考虑简化字符串比较操作.在本教程中,我们将介绍如何创建字符串对象,如何使用引号,最重要的是在Python中比较字符串的七 ...

  8. c int转字符串_【C++实现python字符串函数库】字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  9. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例

    爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...

  10. 如何检查一个Python字符串是否只包含数字?

    如何检查一个Python字符串是否只包含数字? python String类中有一个名为isdigit()的方法,如果字符串中所有字符都是数字且至少有一个字符,则返回true,否则返回false. p ...

最新文章

  1. mapreduce shuffle过程
  2. soj#547 bzoj5046 分糖果游戏
  3. hotelling变换_基于Hotelling-T²的偏最小二乘(PLS)中的变量选择
  4. 影响员工敬业度的三大因素
  5. 2014年考研英语一翻译知识点
  6. vue项目没有router文件夹_Vue路由(vue-router)配置实战——动态路由,重定向,工程非根目录...
  7. 服务器SSH 22端口关闭
  8. vue项目html5调取手机摄像头录像并上传
  9. asyncawait的前世今生
  10. Linux内核“问题门” - 学习问题、经验集锦
  11. 开发一个分销小程序需要多少钱?
  12. 面对已知问题和未知问题的解决思路
  13. 《鱿鱼游戏》开场了|谁才是影评人的御用写作工具
  14. Hadoop退出安全模式
  15. 写一段有趣的科普文来介绍鲫鱼
  16. facebook 添加好友_如何对Facebook帖子添加不同的React(如心脏或表情符号)
  17. 使用阿里云ECS搭建基于Wordpress的个人网站
  18. 基于epoll实现的c++聊天室(全代码)
  19. 【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析 31页省一等奖论文及代码
  20. 网络切片技术缺点_网络切片和服务质量(QoS)有什么区别?

热门文章

  1. 简单理解php的socket编程
  2. 手机不ROOT使用xposed框架-微信群同步-微咖讲师-安装教程
  3. ubuntu查看本地ip
  4. 状压DP【洛谷P1896】 [SCOI2005]互不侵犯
  5. Android高级之十二讲之如何降低应用内存消耗
  6. js实现多个图片淡入淡出,框架
  7. HDU 5410 CRB and His Birthday
  8. Flex Builder 不能Profile的另一个原因:不能使用中文用户名
  9. 在InstallShield中发布单一的Setup.exe文件
  10. 实例源码--Android捕鱼达人经典游戏