通过返回键值对的转换函数将列表扩展为python中的字典

瑞南B

我正在尝试从列表和一个函数生成一个字典,该函数从所述列表的元素计算键值对,例如

def transform(element):
    key = f"{element}^2"
    value = element**2
    return key, value

elements = [1, 2, 3]
elements_dict = {k: v for (k, v) in [transform(elem) for elem in elements]}

# elements_dict should be {'1^2': 1, '2^2': 4, '3^2': 9}

然而,这个元素列表可能非常大,需要及时处理,这使得生成中间数组既不切实际又效率低下。

有没有办法做到这一点,以便从原始列表中懒惰地读取元素,由函数转换为键值对,并存储在字典中而不生成任何中间结构?

transform功能的使用也是不可协商的;这里提供的是一个最小的工作示例,但是它们的实际功能要复杂得多,不能简单地作为字典理解的一部分编写。

斯蒂芬

您可以使用内置map函数。

elements_dict = {k: v for (k, v) in map(transform, elements)}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章