【发布时间】:2019-08-07 21:32:41
【问题描述】:
我有一个术语列表:
terms = [
'mani factor',
'manner',
'manufactur',
'manufactur distribut',
'manufactur facil',
'manufactur oper',
'manufactur process',
'march',
'margin',
'market advers',
'market condit',
'market disrupt',
'market price',
'market product',
'market result',
'market risk',
'market sale',
'market share',
'market valu',
'materi advers',
'materi advers affect',
'materi advers effect',
'materi advers impact',
'materi affect',
'materi impact'
]
还有一组术语 b:
b = set(['risk','factor','effect','affect','impact'])
我想查找至少包含 b 中的一个术语的术语。我尝试了以下方法:
for t in b:
for term in terms:
if t in term:
a.extend(term)
它导致这个输出:
'a', 'n', 'i', ' ', 'f', 'a', 'c', 't', 'o', 'r', 'e', 'c', 'o', 'n', 'o', 'm', ' ', 'f', 'a', 'c', 't', 'o', 'r', 'f', 'a', 'c', 't', 'o', 'r', ' ', 'a', 'f', 'f', 'e', 'c', 't', 'f', 'a', 'c', 't', 'o', 'r', ' ', 'c', 'a', 'u', 's', 'f', 'a', 'c', 't', 'o', 'r', ' ', 'c', 'o', 'n', 't', 'r', 'o
【问题讨论】:
-
a.extend(term)=>a.append(term) -
或
a = [term for t in b for term in terms if t in term] -
谢谢。这行得通。
标签: python string for-loop list-comprehension string-matching