我有一本字典self.what_to_build
我正在迭代每个元素,并使用以下方式将另一个方法应用于每个元素:
[self.typeBuild(obj_type,dest) for obj_type,dest in self.what_to_build.items()]
我的理解是这在内存中构建了一个列表,虽然对程序没有实际影响,但我想不要这样做,我真的不需要列表,只需应用该方法。 如何在不进行列表理解的情况下以最Pythonic的方式执行相同的地图
答案 0 :(得分:7)
只需使用常规循环:
for obj_type,dest in self.what_to_build.items():
self.typeBuild(obj_type, dest)
列表推导确实会创建一个列表对象,其中包含self.typeBuild()
次调用的返回值,如果您不需要这些返回值,则会浪费CPU和内存。
不要试图写'紧凑'代码太累了;可读性在恰当的冗长程度中找到。