【发布时间】:2019-08-21 08:02:07
【问题描述】:
我需要从包含 ing 的单词的末尾删除 ing。如果一个单词中没有 ing,那么什么都不做,打印出来。
我尝试了一些使用 input 和 word 的代码,但它们不起作用。
wrd = input("Word: ")
print(wrd - "ing")
【问题讨论】:
标签: python string input slice word
我需要从包含 ing 的单词的末尾删除 ing。如果一个单词中没有 ing,那么什么都不做,打印出来。
我尝试了一些使用 input 和 word 的代码,但它们不起作用。
wrd = input("Word: ")
print(wrd - "ing")
【问题讨论】:
标签: python string input slice word
如果您有弹跳或唱歌之类的词,请使用re:
import re
wrd = input("Word: ")
print(re.sub("ing$", "", wrd))
【讨论】:
rstrip 部分。错了。
这是另一种方法:
>>> wrd = input("Word: ")
Word: wording
>>> print(wrd[:-3] if wrd[-3:] == "ing" else wrd)
'word'
>>>
这只会删除字符串末尾的ing。
原始代码:
print(wrd[:-3] if wrd[-3:] == "ing" else wrd)
这是一些时间测试:
import timeit
import re
wrd = "counting timeing"
def method1():
re.sub("ing$", "", wrd)
def method2():
wrd[:-3] if wrd.endswith('ing') else wrd
def method3():
wrd[:-3] if wrd[-3:] == "ing" else wrd
print(timeit.timeit(method1))
print(timeit.timeit(method2))
print(timeit.timeit(method3))
我的输出是:
2.3050724
0.3981412
0.37868440000000003
所以我回答的方法3是最快的
【讨论】:
print(x[:-3] if x.endswith('ing') else x )
【讨论】: