Python:下一个()函数

标签 python sum next

我正在从一本书中学习 Python,我遇到了这个例子:

M = [[1,2,3],
     [4,5,6],
     [7,8,9]]

G = (sum(row) for row in M) # create a generator of row sums
next(G) # Run the iteration protocol

由于我是一个绝对的初学者,并且作者没有对示例或 next() 函数提供任何解释,所以我不明白代码在做什么。

最佳答案

表达式(sum(row) for row in M) 创建了所谓的generator。此生成器将为 M 中的每一行计算一次表达式 (sum(row))。但是,生成器还没有做任何事情,我们只是设置好了。

语句next(G) 实际上运行 M 上的生成器。因此,如果您运行一次 next(G),您将获得第一行的总和。如果你再次运行它,你会得到第二行的总和,以此类推。

>>> M = [[1,2,3],
...      [4,5,6],
...      [7,8,9]]
>>> 
>>> G = (sum(row) for row in M) # create a generator of row sums
>>> next(G) # Run the iteration protocol
6
>>> next(G)
15
>>> next(G)
24

另见:

关于Python:下一个()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1733004/

相关文章:

python - BeautifulSoup 只刮掉了我一半的 table ?

python - 在 Docker 容器中运行 `flake8 src` 时无输出

python - 在 Python 2 中搜索 FileNotFoundError 的等价物

ios - 如何在 Swift 2.2 中使用 ResearchKit 在自定义事件步骤中禁用下一步按钮?

ios - 如何使用键盘上的下一个按钮在文本字段和 TextView 的组合之间遍历?

Python:创建一个可以循环迭代的类

python - Pandas:合并两个一维数据帧,输出两列并填充唯一元素的值

arrays - 任意 365 天期间的总和值

sql - oracle SQL 上的条件求和

mysql - 使用MySQL CASE求SUM上个月和本月总计