我正在遍历一个对象数组,在每个对象上调用一个方法,如下所示:
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/