假設字符末尾有字符'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, "")
輸出應該是: 「s'ss蟒蛇很有趣」
不知怎的,它會刪除所有s
和'
,而不只是在最後。
我該如何刪除有「s」的字符。
假設字符末尾有字符'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, "")
輸出應該是: 「s'ss蟒蛇很有趣」
不知怎的,它會刪除所有s
和'
,而不只是在最後。
我該如何刪除有「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.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 '
你想用正則表達式 –
'在ST CH:'通過每一個字符,而不是你想要的行爲循環。 –