假设's单词末尾有字符,我该如何删除它?
下面,是我尝试过的:
st = "s'ss python's is fun's "
for ch in st:
if ch[-2:] in "'s": # check if last two index is 's
st = st.replace(ch, "")
输出应该是:“sss python is fun”
不知何故,它会删除所有sand ',而不仅仅是在最后。
我怎样才能删除具有“'s”的字符。
假设's单词末尾有字符,我该如何删除它?
下面,是我尝试过的:
st = "s'ss python's is fun's "
for ch in st:
if ch[-2:] in "'s": # check if last two index is 's
st = st.replace(ch, "")
输出应该是:“sss python is fun”
不知何故,它会删除所有sand ',而不仅仅是在最后。
我怎样才能删除具有“'s”的字符。
我认为这可以完成您正在寻找的东西(如果我误解了 :) 抱歉)。这会将您的字符串拆分为空格,然后遍历生成的“单词”。如果单词以 结尾's,则删除该部分;如果不是,则返回整个单词。然后将结果与空格字符连接以返回一个字符串:
In [16]: st = "s'ss a python's is fun's "
In [17]: ' '.join(s if s[-2:] != "'s" else s[:-2] for s in st.split())
Out[17]: "s'ss a python is fun"
mylist = []
strin = "s'ss hello you's"
mylist = list(strin)
mylist.remove[-1]
print str(mylist)
#the output will be as , "s'ss hello you'"
我会使用正则表达式,如下所示:
>>> import re
>>> re.sub(r"'s\b", "", "s'ss python's ")
"s'ss python "
(\b匹配单词的开头或结尾)
首先,你的st结尾是一个空格——你可能想用str.splitor删除它str.lstrip:
>>> st = "s'ss python's is fun's "
>>> st = st.strip()
>>> print(st)
s'ss python's is fun's
然后删除尾随's有许多不同的方法。
使用正则表达式是一种简洁的方式:
>>> import re
>>> re.sub("'s$", "", st)
"s'ss python's is fun"
或者您可以检查字符串是否以's并删除最后两个字符结尾:
>>> if st.endswith("'s"):
... st = st[:-2]
不要str.rstrip用来执行此操作,因为它可能不像您预期的那样:
>>> st.rstrip("'s") # Bad
"s'ss python's is fun"
在这种情况下看起来是正确的,但正如文档解释的那样,“[the] 参数不是后缀;相反,它的值的所有组合都被剥离了”。例如:
>>> "lots of ssssss's".rstrip("'s")
'lots of '