【发布时间】:2020-01-03 09:36:56
【问题描述】:
我有一个字典,其中包含一对键:值,其中值是字符串列表:
dictionarylst = {0:["example inside some sentence", "something else", "some blah"], 1:["testing", "some other word"], 2:["a new expression", "my cat is cute"]}
我还有一个可以是标记或二元组的单词列表:
wordslist = ["expression 1", "my expression", "other", "blah"]
我正在尝试将单词列表中的每个单词与字典中每个值中的每个文本进行匹配。当有匹配时,我想用空格替换那个模式(但保留其余文本)并将输出存储在具有相同键的新字典中。
这是我迄今为止尝试过的:
dictionarycleaned = {}
for key,value in dictionarylst.items():
for text in value :
for word in wordslist :
if word in value :
pattern = re.compile(r'\b({})\b'.format(word))
matches = re.findall(pattern, text)
dictionarycleaned[key] = [re.sub(i,' ', text) for i in matches]
else :
dictionarycleaned[key] = value
这仅匹配我的单词表中的一小部分模式。我尝试了不同的变体:比如将模式与每个值中的整个字符串列表匹配,或者在 dictionarylst 之前迭代 wordlist,但似乎没有什么可以清理我的所有数据(非常大)。
感谢您的建议。
【问题讨论】:
-
你的预期输出是什么?
-
预期的输出是一个字典,就像输入一样,但是文本被清除了。 (因此代码中的dictionarycleaned = {})
标签: python regex string list dictionary