将列表理解转换为函数式编程

Convert a list comprehension to functional programming

我有一个词典列表

lst = [{'a': (1, 2, 3), 'b': (2, 3)},
       {'c': (3, 6), 'd': (4, 8), 'e': (5, 10)},
       {'d': (6, 12), 'e': (7, 14)}]

对于每个字典中的每个键,我只想保留值的第一个元素。所以期望的输出是

[{'a': 1, 'b': 2}, {'c': 3, 'd': 4, 'e': 5}, {'d': 6, 'e': 7}]

我可以使用像

这样的列表理解来得到它
[{key: val[0] for key, val in dct.items()} for dct in lst]

但是,我想知道是否可以使用 map、itemgetter、itertools、functools 等获得相同的输出。我目前拥有的是:

map(dict.values, lst)

但我不知道如何从这里开始。

对于嵌套迭代,我认为如果没有 lambda 表达式的帮助我们是做不到的:

from operator import itemgetter, methodcaller

[*map(
    lambda items: dict(zip(
            map(itemgetter(0), items),
            map(itemgetter(0), map(itemgetter(1), items))
        )), map(methodcaller('items'), lst))]
# [{'a': 1, 'b': 2}, {'c': 3, 'd': 4, 'e': 5}, {'d': 6, 'e': 7}]

不得不说很丑