如何将函数映射到每个字典元素?

时间:2014-10-09 15:09:15

标签: python python-3.x dictionary

我有一本字典self.what_to_build
我正在迭代每个元素,并使用以下方式将另一个方法应用于每个元素:

[self.typeBuild(obj_type,dest) for obj_type,dest in self.what_to_build.items()]

我的理解是这在内存中构建了一个列表,虽然对程序没有实际影响,但我想不要这样做,我真的不需要列表,只需应用该方法。 如何在不进行列表理解的情况下以最Pythonic的方式执行相同的地图

1 个答案:

答案 0 :(得分:7)

只需使用常规循环:

for obj_type,dest in self.what_to_build.items():
    self.typeBuild(obj_type, dest)

列表推导确实会创建一个列表对象,其中包含self.typeBuild()次调用的返回值,如果您不需要这些返回值,则会浪费CPU和内存。

不要试图写'紧凑'代码太累了;可读性在恰当的冗长程度中找到。