在字符串列表中查找完全匹配

ori*_*ven 5 python regex string string-matching

这是非常新的,所以请耐心等待...

我有一个预定义的单词列表

checklist = ['A','FOO']
Run Code Online (Sandbox Code Playgroud)

一个单词列表line.split()看起来像这样

words = ['fAr', 'near', 'A']
Run Code Online (Sandbox Code Playgroud)

我需要checklistin 的完全匹配words,所以我只找到'A':

if checklist[0] in words:
Run Code Online (Sandbox Code Playgroud)

这没用,所以我尝试了一些我在这里找到的建议:

if re.search(r'\b'checklist[0]'\b', line): 
Run Code Online (Sandbox Code Playgroud)

无济于事,因为我显然无法找到那样的列表对象......对此有何帮助?

bin*_*ate 10

使用集合比迭代列表要快得多.

checklist = ['A', 'FOO']
words = ['fAr', 'near', 'A']
matches = set(checklist).intersection(set(words))
print(matches)  # {'A'}
Run Code Online (Sandbox Code Playgroud)


pus*_*kin 6

这将为您提供完全匹配的列表.

matches = [c for c in checklist if c in words]

这与以下相同:

matches = []
for c in checklist:
  if c in words:
    matches.append(c)
Run Code Online (Sandbox Code Playgroud)

  • 这不会返回完全匹配,它也会返回部分匹配。 (3认同)