【发布时间】:2019-02-23 18:29:35
【问题描述】:
我有 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 键'X(i,j)' 的一部分,我想用第一个键的键和第二个键的值创建第三个字典。
所以最终的结果应该是这样的:
dict3 = {'X(0,0)': 'area1', 'X(0,1)': 'area1', 'X(1,0)':'area2', 'X(1,1)':'area2'}
我已尝试按照here 的建议进行操作,但这并不是我想要的,无法实现。
【问题讨论】:
-
我不明白这个逻辑...我的意思是
X(1,0)包含0和1,你为什么将它与area2联系起来而不是area1?另外:为什么要使用字符串?如果您只是将元组用作字符串,那会容易得多......即,而不是"X(0)"和"X(0,0)"使用0和(0,0)之后你可以简单地做key1 in key2而不必解析两者...... -
@GiacomoAlzetta 请注意“X(i)”和“X(i,j)”。所以我们只需要查看 (i,j) 对中的第一个数字。
-
不是很笼统,但我认为这适用于您的情况:
{k: dict2[k[:3]+")"] for k, v in dict1.items()} -
这些键中的数字只会是个位数吗?
-
@PM2Ring 是的,我只关心 (i,j) 对中的第一个数字是否常见。它们是优化的结果,所以我更喜欢保持它们这样,这样更容易跟踪正在发生的事情。键中的数字不是个位数,但无论如何我都不希望它们出现在最终字典中。
标签: python python-3.x dictionary