课程:
- 1、python怎么去掉末尾标点符号
- 2、python 去掉标点符号
- 3、python中用正则表达式去掉文本中所有的标点符号
- 4、python中如何删除指定位置前的字符 比如 21-2 删除-前面的所有字符?
python怎么去掉末尾标点符号
我们想在字符串的开始、结尾或中间去掉不需要的字符,比如说空格符。
解决方案
关注,转发,私信小编“01”即可免费领取Python学习资料!
strip()方法可用来从字符串的开始和结尾处去掉字符。lstrip()和rstrip()可分别从左或从右侧开始执行去除字符的操作。默认情况下这些方法去除的是空格符,但也可以指定其他的字符。例如:
讨论
当我们读取并整理数据以待稍后的处理时常常会用到这类strip()方法。例如,可以用它们来去掉空格、移除引号等。
需要注意的是,去除字符的操作并不会对位于字符串中间的任何文本起作用。例如:
如果要对里面的空格执行某些操作,应该使用其他技巧,比如使用replace()方法或正则表达式替换。例如:
我们通常会遇到的情况是将去除字符的操作同某些迭代操作结合起来,比如说从文件中读取文本行。如果是这样的话,那就到了生成器表达式大显身手的时候了。例如:
这里,表达式lines = (line.strip() for line in f)的作用是完成数据的转换[1]。它很高效,因为这里并没有先将数据读取到任何形式的临时列表中。它只是创建一个迭代器,在所有产生出的文本行上都会执行strip操作。
对于更高级的strip操作,应该转而使用translate()方法。请参见下一节以获得进一步的细节。
python 去掉标点符号
这个明显是错误的,你根本没理解replace函数是怎么用的。
Python str.replace(old, new[, max])
方法把字符串str中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max
次。
如果非要用replace()函数来实现要这样写:
import string
m = l
for c in string.punctuation:
m = m.replace(c,")
更简便的方法是用translate(),代码如下:
import string
m = l.translate(None, string.punctuation)
python中用正则表达式去掉文本中所有的标点符号
我的理解是 python’s的“ ’ ”也是字符 ,和标点符号一样。你只要把去除的字符都加到正则表达式的括号中就可以了。 ,所以:
import re
r='[’!"#$%\'()*+,-./:;=?@[\\]^_`{|}~]+'
line=re.sub(r,'',"python’s")
print line
python中如何删除指定位置前的字符 比如 21-2 删除-前面的所有字符?
关于您的问题,我想到三种思路
s = "21-2"
# 方法一(通用)
# 找到‘-’的索引值,然后加一取出减号后面的值
index = s.find('-')+1
print(s[index:])
# 方法二(手工计算便宜)
# 数偏移量
print(s[3:])
# 方法三(取巧,利用-分隔)
# 已‘-’为分隔符,取后面的内容
print(s.split('-')[1])