我有一本字典,其结构如下:
d = {'actor1': {'salary': {'year1': 60, 'year2': 65}, 'age': 30},
'actor2': {'salary': {'year1': 20, 'year2': 30}, 'age': 17},
'actor3': {'salary': {'year1': 50, 'year2': 80}, 'age': 25}}
我希望输出如下:
b = {'average': {'salary': {'year1': 43.3, 'year2': 58.3}, 'age': 24}}
因此,内部dict可以包含同时是数字或字典的值。如果它是一个字典,我们保证每个组成字典都有相同的键(即:对于每个actor
,相同的years
总是出现在salary
中)。你知道吗
我在为age
键找到正确的值方面没有问题,可以按以下方式完成
actor_keys = list(d)
b = {}
b['average'] = {}
b['average']['age'] = np.mean([b[i]['age'] for i in actor_keys])
有没有一种类似的计算方法可以聚集在salary
中的键上?你知道吗
您可以使用递归获得更健壮的解决方案来处理未知深度的输入:
输出:
我会这么做。你知道吗
这可以处理任意正的年数和参与者数,并且不需要
itertools
或numpy
。你知道吗下面是另一个递归解决方案:
相关问题 更多 >
编程相关推荐