我有2个(简化的)字典,像这样:
dict1 = {'X(0,0)': 1, 'X(0,1)': 3, 'X(1,0)':4, 'X(1,1)':2}
dict2 = {'X(0)': 'area1', 'X(1)': 'area2'}
如果dict2
键'X(i)'
是dict1
键{{的一部分, 1}}。
所以最终结果应该是这样的:
'X(i,j)'
我尝试按照建议的here进行操作,但这并不是我想要的,并且无法使其正常工作。
答案 0 :(得分:2)
您可以执行以下操作: 但是这种方法更适合您的问题。
print {key:dict2.get(key.split(',')[0]+')')for key in dict1}
# {'X(0,0)': 'area1', 'X(0,1)': 'area1', 'X(1,0)': 'area2', 'X(1,1)': 'area2'}
将X(0,0)
转换为X(0)
就是这样
In [29]: 'X(0,0)'.split(',')
Out[29]: ['X(0', '0)']
In [30]: 'X(0,0)'.split(',')[0]+')'
Out[30]: 'X(0)'
答案 1 :(得分:0)
我建议您先创建一个临时字典(用于键查找),然后再做最后一个:
tmp_dict = {key[:3]: value for key, value in dict2.items()}
# {'X(0': 'area1', 'X(1': 'area2'}
dict3 = {key: tmp_dict[key[:3]] for key, value in dict1.items()}
# {'X(0,0)': 'area1', 'X(0,1)': 'area1', 'X(1,0)': 'area2', 'X(1,1)': 'area2'}
这仅适用于单位坐标。
答案 2 :(得分:0)
dict3 ={}
for i in dict1:
dict3[i]=dict2[i[:3]+")"]
适合您的情况!