如果單詞的結(jié)尾類似于給定列表中的任何可能結(jié)尾,我想刪除單詞的結(jié)尾。我使用了以下代碼:ending = ('os','o','as','a')def rchop(thestring): if thestring.endswith((ending)): return thestring[:-len((ending))] return thestringrchop('potatos')結(jié)果是:“鍋”。但我想要這個:'potat'我怎樣才能解決這個問題?
3 回答

搖曳的薔薇
TA貢獻(xiàn)1793條經(jīng)驗 獲得超6個贊
您當(dāng)時正在按照結(jié)尾元組的長度(4 個元素)對字符串進(jìn)行切片。這就是您收到錯誤字符串的原因。
endings = ('os','o','as','a')
def rchop(thestring):
for ending in endings:
if thestring.endswith(ending):
return thestring[:-len(ending)]
return thestring
print(rchop('potatos'))
返回:
potat

波斯汪
TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
或者試試這個(很短),(注意,即使在非ending元素位于字符串末尾時也能工作):
def f(s):
s2=next((i for i in ending if s.endswith(i)),'')
return s[:len(s)-len(s2)]
現(xiàn)在:
print(f('potatos'))
是:
potat
正如預(yù)期的那樣?。。?/p>
添加回答
舉報
0/150
提交
取消