我循环遍历一个对象数组,在每个对象上调用一个方法,如下所示:
for cell in cells:
cell.update_type(next_cells[cell.index])
Run Code Online (Sandbox Code Playgroud)
有没有办法用map()做等效的?
它似乎update_type返回None,所以你可以使用:
any(cell.update_type(next_cells[cell.index]) for cell in cells)
Run Code Online (Sandbox Code Playgroud)
但除非正常循环出现问题,否则坚持下去.它是最具可读性的,你不应该过早优化.
你不应该map在这里使用因为没有办法避免在Python函数/ lambda表达式上使用它,所以你不会比普通循环获得速度优势.
你不应该使用列表推导,因为update_type即使你忽略它们,你也会不必要地累积一个返回值列表- any而是使用它.
| 归档时间: |
|
| 查看次数: |
2279 次 |
| 最近记录: |