Python 从单词列表中查找字符串和子字符串

Python 从单词列表中查找字符串和子字符串,python,dictionary,Python,Dictionary,我有test.txt文件,从单词列表中查找字符串和子字符串 <aardwolf> <Aargau> <Aaronic> <aac> <akac> <abaca> <abactinal> <abacus> 下面是在命令行中运行该文件的步骤 python test.py test.txt aack aadfl 期望的结果是在第二个参数后找到匹配的字符串和每个参数的子字符串。My basestri

我有test.txt文件,从单词列表中查找字符串和子字符串

<aardwolf>
<Aargau>
<Aaronic>
<aac>
<akac>
<abaca>
<abactinal>
<abacus>  
下面是在命令行中运行该文件的步骤

python test.py test.txt  aack aadfl

期望的结果是在第二个参数后找到匹配的字符串和每个参数的子字符串。
My basestring未打印

您必须使用regexp吗? 如果没关系,你想要这样的结果吗

with open('test.txt', 'r')as f:
    s = f.read()
s = s.split('\n')
s

Out[1]:
['<aardwolf>',
 '<Aargau>',
 '<Aaronic>',
 '<aac>',
 '<akac>',
 '<abaca>',
 '<abactinal>',
 '<abacus>  ']

不,我需要执行
regex
操作,并对建议k进行1次投票,我明白了。我试着用regexp来做。已更新代码。您可以将逻辑的第一个答案带到基本字符串,它将打印出来。
with open('test.txt', 'r')as f:
    s = f.read()
s = s.split('\n')
s

Out[1]:
['<aardwolf>',
 '<Aargau>',
 '<Aaronic>',
 '<aac>',
 '<akac>',
 '<abaca>',
 '<abactinal>',
 '<abacus>  ']
ARGVs = ['aard', 'onic', 'abacu']

matches = [x for x in s for arg in ARGVs if arg.lower() in x.lower()]
print(matches)

Out[2]:
['<aardwolf>', '<Aaronic>', '<abacus>  ']
ARGVs = ['aard', 'onic', 'abacu', 'aaro', 'ac']

{key:[x for x in s if key in x] for key in ARGVs if len([x for x in s if key in x]) != 0}

Out[3]:

{'aard': ['<aardwolf>'],
 'onic': ['<Aaronic>'],
 'abacu': ['<abacus>  '],
 'ac': ['<aac>', '<akac>', '<abaca>', '<abactinal>', '<abacus>  ']}
import re

with open('test.txt', 'r')as f:
    s = f.read()

ARGVs = ['wol','ac']
cond = '|'.join([f'\w*{patt}\w*' for patt in ARGVs])
re.findall(cond,s)  

Out[4]:
['aardwolf', 'aac', 'akac', 'abaca', 'abactinal', 'abacus']