我有两本字典,假设它们是regex = {}
和dict = {}
其中第一个包含find和replace模式,分别为keys
和values
。看起来是这样的:
# about 50 key/value pairs
regex = {
'find1' : 'replace1',
'find2' : 'replace2',
...
'findX' : 'replaceX'
}
第二个是这样的:
# about 500,000 key/value pairs
dict = {
'key1' : 'value1',
'key2' : 'value2',
...
'keyX' : 'valueX'
}
对于每个keyX
,valueX
from dict
我想检查valueX
是否包括来自regex
的findX
,如果是,我想用replaceX
替换它并保存到相同的(dict
)或新的字典或列表(在下面的代码中使用了新的列表)
我已尝试使用以下代码:
for keyX, valueX in dict.items():
for patterns in regex.items():
if re.search(patterns[0], valueX)
new_value = re.sub(patterns[0], patterns[1], valueX)
new_line = keyX + '\t' + new_value
new_list.append(new_line)
我的机制工作错误:对于每一个valueX
,它应该检查它是否包含每一个findX
中的任何一个,用replaceX
替换它,保存,但是我的输出列表变得相当混乱。为不同的keyX
复制new_value
。我知道在我的字典(可能是regex字典)上进行迭代有问题,但我不知道如何解决这个问题
编辑(示例):
regex = {
's t n': 's n',
'e0': 'i0',
'j a0': 'j i0'
}
dict = {
'известный': 'i0 z vj e1 s t n y0 j',
'сестра': 'sj e0 s t r a1'
'январь': 'j a0 n v a1 rj'
}
您可以过滤键并将其组织为元组列表,稍后循环并相应替换您的值,如下所示:
输出:
尝试:
你会得到:
相关问题 更多 >
编程相关推荐