我正在遍历一个对象数组,在每个对象上调用一个方法,如下所示:

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

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

最佳答案

看来 update_type 返回 None ,因此您可以使用:

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

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

您不应该在此处使用 map ,因为无法避免在 Python 函数/lambda 表达式上使用它,因此与普通循环相比,您不会获得速度优势。

您不应该使用列表推导式,因为即使您忽略了它们,您也不必要地累积了 update_type 的返回值列表——请改用 any

关于python映射对象方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7929789/

10-16 13:10