Python map对象的方法
我正在遍历一个对象数组,对每个对象调用一个方法,像这样:
for cell in cells:
cell.update_type(next_cells[cell.index])
有没有办法用map()来实现同样的效果呢?
1 个回答
9
看起来 update_type
返回的是 None
,所以你可以这样写:
any(cell.update_type(next_cells[cell.index]) for cell in cells)
不过,除非正常的循环有问题,否则还是用这个吧。这样写最容易读懂,而且不需要过早地去优化。
这里不应该用 map
,因为你必须在 Python 函数或 lambda 表达式上使用它,所以这样做并不会比正常的循环快。
也不应该用列表推导式,因为你会无谓地生成一个 update_type
返回值的列表,而你其实并不需要这些返回值——用 any
更合适。