1

'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 is fun"

どういうわけか、最後だけでなく、すべてsを削除します。'

「 」を持つ文字を削除するにはどうすればよいですか。

4

4 に答える 4

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"
于 2012-11-25T01:26:35.750 に答える
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'"
于 2012-11-25T09:40:15.927 に答える
0

まず、スペースで終わります- おそらく、またはのいずれかstでこれを削除したいでしょう:str.splitstr.lstrip

>>> st = "s'ss python's is fun's "
>>> st = st.strip()
>>> print(st)
s'ss python's is fun's

次に、末尾を削除する'sには、さまざまな方法があります。

正規表現の使用は、1 つの適切な方法です。

>>> import re
>>> re.sub("'s$", "", st)
"s'ss python's is fun"

または、文字列が次の文字で終わっているかどうかを確認して's、最後の 2 文字を削除することもできます。

>>> 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 '
于 2013-02-08T10:55:22.070 に答える
0

次のような正規表現を使用します。

>>> import re
>>> re.sub(r"'s\b", "", "s'ss python's ")  
"s'ss python "

(\b単語の先頭または末尾に一致)

于 2013-02-08T09:23:52.810 に答える