Python map对象的方法

4 投票
1 回答
2554 浏览
提问于 2025-04-17 05:11

我正在遍历一个对象数组,对每个对象调用一个方法,像这样:

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 更合适。

撰写回答