say_d = ["say", "tell me"]
a = input("Please Type An Action For Me To Do: ")
if any(word in a for word in say_d):
print(a)
如果say_d
中包含任何关键字,则此程序会打印输入的输入。但它也会打印关键字。有没有办法从假定的输出中删除关键字?像:
say_d = ["say", "tell me"]
a = input("Please Type An Action For Me To Do: ")
if any(word in a for word in say_d):
print(a-say_d)
答案 0 :(得分:1)
您可以使用正则表达式或str.replace
将空白字符串替换为常用字词:
import re
say_d = ["say","tell me"]
a = (input("Please Type An Action For Me To Do: "))
if any(word in a for word in say_d):
print(re.sub('|\b'.join(say_d), '', a))
但请注意,如果您想删除输入中存在thery的常用字词,则无需使用any
,因为这两个函数(re.sub
和str.replace
)替换只有它们存在于文本中的字符串。
此外,部分word in a
将检查整个输入字符串中的成员资格,而不是其单词。也就是说,如果输入字符串中的一个单词包含say_d
内的单词,它将返回True。与包含sayulita
一词的say
类似。
为了解决这个问题,您可以再次检查成员资格,方法是拆分输入字符串,然后循环它或使用正则表达式。
答案 1 :(得分:0)
这就是你要找的东西:
say_d=["say","tell me"]
a=(input("Please Type An Action For Me To Do: "))
if any(word in a for word in say_d):
set2 = set(say_d)
result = [element for element in a if element not in set2]
print(list(result))
答案 2 :(得分:0)
如果没有任何输入和输出,我假设你想要从输入字符串中删除任何候选词(列表中的say_d),所以也许它可以像下面这样简单:
say_d=["say","tell me"] a=(input("Please Type An Action For Me To Do: ")) ret = reduce(lambda r, w: r.replace(w, ''), say_d, a) if len(ret) != len(a): print ret