假设单词末尾有'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, "")
输出应该是:“s'ss python很有趣”
不知何故,它会删除所有s
和'
,而不只是删除。
如何删除包含“s”的字符。
答案 0 :(得分:2)
我认为这可以实现您所寻找的目标(对不起,如果我误解了:))。这会将您的字符串拆分为空格,然后遍历生成的“单词”。如果单词以'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"
答案 1 :(得分:0)
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'"
答案 2 :(得分:0)
我会使用正则表达式,如下所示:
>>> import re
>>> re.sub(r"'s\b", "", "s'ss python's ")
"s'ss python "
(\b
匹配单词的开头或结尾)
答案 3 :(得分:0)
首先,您的st
以空格结尾 - 您可能希望使用str.split
或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 '