2.11删除字符串中不需要的字符
作者:互联网
问题
你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
解决方案
lstrip()方法能用于删除开始或者结尾的字符。lstrip()和 rstrip()分别从左或者右执行删除操作。默认情况下,这些方法会去掉空白字符,但是你也可以指定其他字符。
s=' hello world \n'
print(s.strip()) # ->hello world
print(s.lstrip()) # -> hello world \n
print(s.strip()) #->hello world
t='-----hello====='
print(t.lstrip('-')) #->hello=====
print(t.rstrip('=')) # ->-----hello
print(t.strip('-=')) # ->hello
讨论
这些lstrip()方法在读取和清理数据以备后续处理的时候是经常会被用到的,比如,你可以用它们来去掉空格,引号和完成其他任务。
但是要注意的是去掉操作不会对字符串的中间的文本产生任何影响。比如:
s=' hello world \n'
print(s.strip()) #->hello world
如果你想处理中间的空格,那么你需要求助于其他技术,比如使用replace()方法或者用正则表达式替换。示例如下:
s=' hello world \n'
print(s.replace(' ','')) # ->helloworld
import re
print(re.sub('\s+',' ',s)) # -> hello world
通常情况下你想讲字符串strip操作和其他迭代操作相组合,比如上下文件中读取多行数据。如果是这样的话,那么生成器表达式就可以大显身手了。比如:
with open(r'2-3用Shell通配符匹配字符串.py') as f:
lines = (line.strip() for line in f)
print(lines) # -》<generator object <genexpr> at 0x0000021933F5CB30>
在这里,表达式lines = (line.strip() for line in f) 执行数据转换操作。这种方式非常高效,因为它不需要预先读取所有数据放到一个临时的列表中切,它仅仅只是创建一个生成器,并且每次返回行之前会先执行strip操作。
标签:字符,lstrip,print,strip,字符串,world,line,hello,2.11 来源: https://www.cnblogs.com/ye-peng/p/15945322.html