python map对象方法

时间:2011-10-28 13:18:11

标签: python

我循环遍历一个对象数组,在每个对象上调用一个方法:

for cell in cells:
    cell.update_type(next_cells[cell.index])

有没有办法用map()做等效的?

1 个答案:

答案 0 :(得分:9)

似乎update_type返回None,因此您可以使用:

any(cell.update_type(next_cells[cell.index]) for cell in cells)

但除非有正常循环的问题,否则请坚持下去。它是最具可读性的,你不应该过早地进行优化。

不应该在这里使用map因为没有办法避免在Python函数/ lambda表达式上使用它,所以你不会比正常情况更快速地获得速度优势循环。

不应该使用列表理解,因为你不必累积update_type的返回值列表,即使你忽略它们 - 使用{{1}而不是。