2014-10-09 80 views
0

我有一本字典self.what_to_build
我每个元素迭代,并使用以下方法适用于另一种方法给每个元素:如何将函数映射到每个字典元素?

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

这是我的理解,这建立在内存中的列表,而没有对该计划的真正影响,我想避免这一点,我真的不需要列表,只是应用该方法。 我怎么会做这样同一个地图,在最Python的方式,而不做一个列表理解

回答

7

只需使用常规的循环:

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

列表理解确实有返回值创建一个列表对象调用self.typeBuild(),如果不需要这些返回值,这会浪费CPU和内存。

不要试图写'紧凑'的代码太挂了;可读性仅在恰当的冗长级别中找到。

+0

我接受这个,但出于好奇,因为我正在学习语言,我可能会在其他人的代码中看到这一点。有没有一种方法可以做到这一点,类似于列表compre' – 2014-10-09 15:17:17

+0

@ ItayMoav-Malimovka:说实话,我会拒绝代码评论中的任何此类尝试。没有一个明智的办法可以做到这一点,也不应该试图做到这一点。 – 2014-10-09 15:18:16

+0

我同意你的方法。但是,在学习一种新语言时,很高兴看到所有的语言都可以提供,而不仅仅是“最佳实践”部分......并感谢您的答复。 – 2014-10-09 15:22:53

相关问题