【发布时间】:2020-06-10 13:21:45
【问题描述】:
这是一个assaigment的一部分,所以它需要使用reduce函数(或过滤器,虽然我没有看到它),因此我想知道它是否可能。
我有两个字典:
takeOff_Airport = {'LPPD': 4, 'DAAS': 1, 'EDDH': 16, 'LFLL': 17, 'LFPO': 30}
landing_Airport = {'LFPO': 12, 'LPPD': 7, 'UUEE': 11, 'DAAS': 7, 'LFSL': 1}
应用以下代码后:
airports = (sorted([[k, [v1+landing_Airport[k], v1,landing_Airport[k]]] for k,
v1 in takeOff_Airport.items() if k in landing_Airport],
key=lambda kv:kv[1], reverse=True))
我得到了预期的结果:
airports: [['LFPO', 42, 30, 12], ['LPPD', 11, 4, 7], ['DAAS', 8, 1, 7]]
“机场”打印的是一个列表,其中包含两个字典(着陆和起飞)中的常用机场名称,并将每个字典值的总和以及每个字典 [key:value] 相加。
是否可以在 reduce 函数中使用一些 lambda 表达式来实现上述功能?也许在过滤器中?
【问题讨论】:
标签: python-3.x dictionary reduce