选择至少包含一个字符串的字符串作为子字符串

2024-05-28 23:45:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个术语列表:

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

Tags: in列表formarket术语risktermterms
1条回答
网友
1楼 · 发布于 2024-05-28 23:45:18

使用append而不是extend谷歌差异:-)

一个很好的pythonic解决方案是这个带有条件的双列表理解:

[t for w in b for t in terms if w in t]

输出:

[
 'materi advers effect',
 'mani factor',
 'materi advers impact',
 'materi impact',
 'materi advers affect',
 'materi affect',
 'market risk'
]

你知道你在追求什么吗?你知道吗

相关问题 更多 >

    热门问题