我无法删除空格和' \ n'在字符串中。代码在这里:
text = '''(ROOT
(SINV
(PP (IN in)
(PP (IN between)'''
text.replace(' ', '')
print text
答案 0 :(得分:2)
您需要为某些内容指定{
"_id" : ObjectId("568073e5bf244c701d000179"),
"text" : "Jose",
"version" : 2,
"taxonomyid" : "56803181bf244c701d000170",
"orderValue" : 1600,
"expandable" : false,
"nativeLanguage" : "en",
"i18n" : {
"en" : {
"text" : "Jose",
"locale" : "en"
}
},
}
。字符串是不可改变的;此方法调用不更改src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2
。
答案 1 :(得分:1)
我不确定你的空白要求是什么,但这似乎是最好的:
>>> text = ' '.join(text.split())
'(ROOT (SINV (PP (IN in) (PP (IN between)'
此外,要杀死所有空白
text = ''.join(text.split())
或者不覆盖text
new_text = ''.join(text.split())
默认情况下, .split()
会在任何空格字符的每个序列上拆分字符串。
>>> "(SINV\n (PP ...".split()
["(SINV", "(PP", "..."]
.join()
方法使用给定字符串连接字符串列表:
>>> ''.join("(SINV\n (PP ...".split())
"(SINV(PP..."
如果您不想删除某些空格,只需重新添加即可:
>>> ''.join(text.split()).replace("(IN", "(IN ")
'(ROOT(SINV(PP(IN in)(PP(IN between)'
答案 2 :(得分:0)
下一个方法调用解决方案是:
text = '''(ROOT
(SINV
(PP (IN in)
(PP (IN between)'''
text = text.translate(None, ' \n\t')
print text
<强> 注:的强> 只是不注意字符串是不可变的的时刻,你不能改变字符串而不是使用变异值,你必须像上面的代码一样重新分配字符串:{ {1}}。
祝你好运!
答案 3 :(得分:0)
您可以使用正则表达式:
import re
text = '''(ROOT
(SINV
(PP (IN in)
(PP (IN between)'''
print re.sub('\s', '', text)
它会给你输出:
(ROOT(SINV(PP(INin)(PP(INbetween)
值得一提的是,字符串是不可变对象。因此,在text
中完成的操作不会改变它。你必须将它分配给一个新的字符串。如,
text = re.sub('\s', '', text)
这将为text
变量分配一个新字符串。
答案 4 :(得分:0)
要使用一轮突变而不是两轮突变,请使用str.translate
(并记住分配结果):
# Python 2:
text = text.translate(None, ' \n')
# Python 3:
spacedeleter = str.maketrans(dict.fromkeys(' \n')) # Create this only once
text = text.translate(spacedeleter) # Do this as often as you need, reusing same spacedeleter