我有两个不同键的字典,但可以有相同的值。你知道吗
dict1 = {key1:[['abc','12'],['xyz','34'],['pqr',[56]]],key2:[['name','lin'],['age','yes']]}
dict_2 = {key3: '(( value(abc) = literal(12) or value(like) = literal(music) ) and (value(PRICELIST) in propval(valid))'}
如果您看到这两个字典都有可能在这两个字典中重复的值。我试图实现的是:用dict_1
键替换value
中的dict_2
。你知道吗
我期望的结果是:
dict_2 = {key3:'(key1 or value(like) = literal(music) )....'}
我可以用相同的键进行dict操作,但是可以计算出不同键但值相同的情况。你知道吗
编辑: 我注意到需要考虑的几件事:
也必须考虑value
和literal
之间的运算符。例如abc > 10
现在也应该被替换,因为它满足abc = 12
的标准值,实际上大于10。
正如@DirtyBit所建议的,我只打算替换dict2上的部分值。
因此,我尝试将regex添加到代码中,以拆分元素,它按预期工作,但仍然无法替换为dict\ u 1中的匹配键:
for (k,v), (k2,v2) in zip(dict1.items(), dict_2.items()):
#print(v2)
for element in re.findall('([a-zA-Z0-9\._]+(?:\()[a-zA-Z0-9\._]+(?:\))[\s=<>(?:in)]+[a-zA-Z0-9\._]+(?:\()[a-zA-Z0-9\._]+(?:\)))',v2):
# print(element)
print(k2, ": ", v2.replace(element, k))
从问题的评论继续:
输出:
相关问题 更多 >
编程相关推荐