【发布时间】:2015-10-10 13:57:03
【问题描述】:
我应该做什么function 从下面的字典中获取一个国家标识符并返回两个长度不等的字典的值之和。此外,dicts 的权重应该不同(在下面找到信息)。如果其中一个字典没有关于特定国家的信息(例如,字典 y 没有关于美国的任何信息),那么应该只使用一个值(例如,字典 x 确实有关于美国的信息,因此输出功能应为 12.1)。例如:
字典一:
x = {'USA':12.1, 'AUS':11.2, 'IND':10.3}
字典二:
y = {'AUS': 9.4, 'IND': 8.3}
总结function的条件:
- 输入 = 国家标识符
- 输出 = 属于某个国家/地区的值的总和
- 在计算总和时,每个字典的值应该有不同的权重。字典 Y 的权重为 0.8。字典 X 的权重为 0.2。
- 函数应该是可迭代的,因为它将在另一个函数中使用,该函数可以查看两个给定的巨大字典。
我尝试了以下代码,但它不起作用:
def sum_dict_values(key):
temp1 = (d.get(key, 0) for d in (x))
temp2 = (d.get(key, 0) for d in (y))
return sum(0.8*temp1, 0.2*temp2)
运行时
sum_dict_values("USA")
我得到错误:
TypeError: unsupported operand type(s) for *: 'float' and 'generator'
【问题讨论】:
标签: python python-2.7 dictionary