【发布时间】:2013-12-02 09:39:30
【问题描述】:
使用 filter、reduce、add、map 从多个字典中获取和评估数据
我想计算以下内容:
- 过滤每个类别,取键的值 (t1,t2,t3..)
- 取出'a','b'的值。
- 从插件添加到同一类别中的每个值
-
每个相乘
结果 = ((80+5)*2.5 + (95+5)*4 + (75+3)*3.5 + (58+10)*5)
要处理的数据:
Values = {'b': 95, 'c': 75, 'a': 80, 'd': 58}
Multipliers = {'b': 4, 'c': 3.5, 'a': 2.5, 'd': 5}
Addons = {'t1':5, 't2':3, 't3':10}
Category = {'t1':('a', 'b'), 't2':('c',), 't3':('d',)}
到目前为止,我所做的是过滤与插件对应的每个类别,现在我只能打印它:
reduce(add,map(lambda x,y: x[1],filter(lambda t: t[0] in Addons, Category.items())))
有什么建议么?谢谢。
【问题讨论】:
-
作为一个简短的评论...仅仅因为您可以在一行上做所有事情,并不意味着您应该。跨度>
-
我的回答显示了如何按照自己的方式进行操作,但它比建议的其他方法复杂得多。
标签: python dictionary filtering