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

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
您當時正在按照結尾元組的長度(4 個元素)對字符串進行切片。這就是您收到錯誤字符串的原因。
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貢獻1811條經驗 獲得超4個贊
或者試試這個(很短),(注意,即使在非ending元素位于字符串末尾時也能工作):
def f(s):
s2=next((i for i in ending if s.endswith(i)),'')
return s[:len(s)-len(s2)]
現在:
print(f('potatos'))
是:
potat
正如預期的那樣!!!
添加回答
舉報
0/150
提交
取消