我正在寻找最清晰、最通俗、最快速的方法来检查字符串是否包含列表中的单词
到目前为止我就是这么想的
introStrings = ['introduction:' , 'case:' , 'introduction' , 'case' ]
backgroundStrins = ['literature:' , 'background:', 'Related:' , 'literature' , 'background', 'related' ]
methodStrings = [ 'methods:' , 'method:', 'techniques:', 'methodology:' , 'methods' , 'method', 'techniques', 'methodology' ]
resultStrings = [ 'results:', 'result:', 'experimental:', 'experiments:', 'experiment:', 'results', 'result', 'experimental', 'experiments', 'experiment']
discussioStrings = [ 'discussion:' , 'Limitations:' , 'discussion' , 'limitations']
conclusionStrings = ['conclusion:' , 'conclusions:', 'concluding:' , 'conclusion' , 'conclusions', 'concluding' ]
allStrings = [ introStrings, backgroundStrins, methodStrings, resultStrings, discussioStrings, conclusionStrings ]
testtt = 'this may thod be in techniques ever material and methods'
for item in allStrings:
for word in testtt.split():
if word in item:
print('yes')
break
这段代码非常适合所有的组合。这是一个嵌套for循环。乍一看还不太清楚。你知道吗
我想知道有没有更好的办法。你知道吗
我可以使用
chain
和any
:虽然
set
需要一些空间,但它可以提高效率。谢谢彼得·伍德。首先,我要把名单弄平
(或者,使用嵌套列表)
接下来,拆分字符串:
最后,只需查找单词:
这是很霸道,不太确定的速度或可靠性
将
any()
与链式列表结合使用会更具python风格:然而,这只会返回true/false;它不会标识在哪个子列表中找到了哪个单词。您可以使用以下列表打印特定匹配项:
多次计算
testtt.split()
会有点浪费代码。你知道吗相关问题 更多 >
编程相关推荐