我循环遍历一个对象数组,在每个对象上调用一个方法:
for cell in cells:
cell.update_type(next_cells[cell.index])
有没有办法用map()做等效的?
答案 0 :(得分:9)
似乎update_type
返回None
,因此您可以使用:
any(cell.update_type(next_cells[cell.index]) for cell in cells)
但除非有正常循环的问题,否则请坚持下去。它是最具可读性的,你不应该过早地进行优化。
你不应该在这里使用map
因为没有办法避免在Python函数/ lambda表达式上使用它,所以你不会比正常情况更快速地获得速度优势循环。
你不应该使用列表理解,因为你不必累积update_type
的返回值列表,即使你忽略它们 - 使用{{1}而不是。