删除字符串中不需要的字符

问题

你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白

解法

strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如:

>>> # Whitespace stripping
>>> s = ' hello world \n'
>>> s.strip()
'hello world'
>>> s.lstrip()
'hello world \n'
>>> s.rstrip()
' hello world'
>>>
>>> # Character stripping
>>> t = '-----hello====='
>>> t.lstrip('-')
'hello====='
>>> t.strip('-=')
'hello'
>>>

讨论

这些 strip() 方法在读取和清理数据以备后续处理的时候是经常会被用到的。比如,你可以用它们来去掉空格,引号和完成其他任务。

但是需要注意的是去除操作不会对字符串的中间的文本产生任何影响。比如:

>>> s = ' hello world \n'
>>> s = s.strip()
>>> s
'hello world'
>>>

如果你想处理中间的空格,那么你需要求助其他技术。比如使用 replace() 方法或者是用正则表达式替换。示例如下:

>>> s.replace(' ', '')
'helloworld'
>>> import re
>>> re.sub('\s+', ' ', s)
'hello world'
>>>

通常情况下你想将字符串 strip 操作和其他迭代操作相结合,比如从文件中读取多行数据。如果是这样的话,那么生成器表达式就可以大显身手了。比如:

with open(filename) as f:lines = (line.strip() for line in f)for line in lines:print(line)

在这里,表达式 lines = (line.strip() for line in f) 执行数据转换操作。这种方式非常高效,因为它不需要预先读取所有数据放到一个临时的列表中去。它仅仅只是创建一个生成器,并且每次返回行之前会先执行 strip 操作。

对于更高阶的 strip,你可能需要使用 translate() 方法。

《Python Cookbook 3rd》笔记(2.11):删除字符串中不需要的字符相关推荐

  1. #37 删除字符串中连续的重复字符

    题目描述: 实现删除字符串中连续的重复字符(除字母和数字).输入为字符串,将字符串中连续重复的,不是字母且不是数字的字符删去,然后输出处理后的字符串. 输入字符串最长50个字符,之后截断,只输出处理后 ...

  2. kotlin中判断字符串_Kotlin程序删除字符串中所有出现的字符

    kotlin中判断字符串 Given a string and a character, we have to remove all occurrences of the character in g ...

  3. python删除字符串_Python3 - 删除字符串中不需要的字符

    问题 去掉文本字符串开头,结尾或者中间不想要的字符,比如空白. 解决方案 strip() 方法用于删除字符串开始或结尾的字符. lstrip() 和 rstrip() 分别从左和从右执行删除操作. 默 ...

  4. 《Python CookBook2》 第一章 文本 - 检查字符串中是否包含某字符集合中的字符 简化字符串的translate方法的使用...

    检查字符串中是否包含某字符集合中的字符  任务: 检查字符串中是否出现了某个字符集合中的字符 解决方案: 方案一: import itertoolsdef containAny(seq,aset):f ...

  5. python cookbook 学习笔记 -- 1.5 去除字符串两端空格

    任务:将字符串中开头和结尾的多余空格去掉 解决方案: 使用string对象的lstrip,rstrip,strio方法.这几个方法都不需要参数,可以直接返回一个删除了开头,末尾或者两端的空格的原字符串 ...

  6. 删除字符串中指定位置的字符

    比如说删除字符串certainly中的第5个字符i,变成certanly. 具体实现如下: 首先:主函数框架如下: #include <stdio.h> #include <wind ...

  7. c语言中字符串最后一位,C删除字符串中的最后一个字符

    该程序删除每个单词的最后一个字符. #include #include #include int main(int argc, char*argv[]){ char *string; char *pt ...

  8. python删除字符_Python之删除字符串中不需要的字符

    原博文 2019-03-01 17:46 − 简单的 str="---你好=====" print(str.strip("-=")) # 你好 从文件中读取多行 ...

  9. python 不显示前几个字符_「Python 秘籍」删除字符串中不需要的字符

    艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用 艺赛旗-RPA机器人免费下载|提供流程自动化解决方案​www.i-search.com.cn 了解RPA请访问 艺赛旗-RPA机器人免费 ...

最新文章

  1. 微型角度编码器 : KYTB-1503-1024
  2. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn
  3. 十分钟内学会 Python
  4. ytu 2335: 0-1背包问题
  5. 浅析laravel门面原理与实现
  6. PyImageSearch新出教程:Dlib多目标跟踪(附下载地址)
  7. mysql 创建函数_MySQL文件及目录权限设置分析-爱可生
  8. json与对象的互相转换
  9. execle java,Java使用POI操作Excel
  10. matlab画EBSD的极图,EBSD技术原理及系统.PDF
  11. html打印26个字母,用js完成:输出26个英文字母任意3个字母的全部组合
  12. 汽车行业,怎么样通过论坛快速引流?
  13. avi怎么转换为mp4格式?
  14. java opengl 话正方形_OpenGL绘制正方形并让其移动
  15. 上班族一定得学会、掌握的jpg转word技巧
  16. 小狼的单身情话之HTML网页标签和段落的初级教学
  17. 关于MFC的使用总结之八——CGridListCtrlEx鼠标响应事件
  18. C#基础知识学习——特性(Conditional特性、Obsolete特性、自定义特性)(十六)
  19. html5-canvas(多模式彩色贪吃蛇)
  20. 这年头,能坐上火箭的东西不多啊,Java版本号算一个

热门文章

  1. 串口通讯编程一日通1(整合资料) .
  2. 华为p50预装鸿蒙系统,华为P50系列将至,内部测试预装鸿蒙系统,还有4款重磅新品将发布...
  3. python自动控制库_Python最为神奇的库,可控制你的鼠标键盘自动运行!
  4. 【转】RabbitMQ六种队列模式-2.工作队列模式
  5. 软件测试计划时要记住什么
  6. Java对象分配原理
  7. 单片机与PC机一样都是计算机,51单片机与PC机通信资料
  8. NoSql理解+传统关系型数据库ACID+Nosql的CAP+BASE的理解
  9. SparkSQL自定义AVG强类型聚合函数与弱类型聚合函数汇总
  10. 【Python CheckiO 题解】Median