问题标签 [generator-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
73 浏览

python - 如何对集合的可变大小部分求和?

我想为不同大小的部分计算集合的总和:

我想知道我想出的解决方案是否是实现我想要的最“pythonic”(优雅、可读、简洁)的方式......

特别是,我想知道是否有办法摆脱单独的迭代器“itd”,以及使用切片是否更容易?

0 投票
1 回答
84 浏览

python - 如何过滤生成器表达式中的值

我下面的函数是计算嵌套字典的深度。

我想修改它以不包括id在深度计算中具有值的键。如果我在生成器表达式中使用三元组,则该程序可以工作:

但我似乎无法通过过滤使其工作:

为什么我的过滤器不工作,我该如何让它工作?

0 投票
2 回答
783 浏览

python - 将元组的可迭代转换为每个元素的可迭代(Python)

我有一个delta生成两个数字的元组的迭代,(dx, dy)我想计算每个数字的总和。以下内容不起作用,因为delta在第一次迭代后处理。

任何想法?我正在考虑以某种方式变成anddelta的两个可迭代对象,但到目前为止还没有达到任何目标。dxdy

0 投票
3 回答
98 浏览

python - 当哨兵连续出现两次时停止迭代的简洁方法

我正在寻找一种方法来生成一个迭代器,该迭代器接受一个可迭代的并只传递值,直到一个标记值直接连续出现两次。类似于iter(a.__next__, sentinel)只有哨兵必须出现两次。

以下相当平淡无奇的代码可以解决问题,但肯定有一个不那么冗长的解决方案吗?

所以把它放在一个具体的问题上:

有没有办法避免使用成熟的生成器并使用可能itertools或生成器表达式来实现相同的目标?

这里有两个例子:

请注意,此问题类似,但缺少发电机角度。

0 投票
0 回答
36 浏览

python - 类定义中的python生成器表达式

我正在 Python 2.7.13 中编写一个简单的类,但遇到了一个令人惊讶的错误:

除了定义 B3 的行之外,上述所有工作都给出了NameError: global name 'T' is not defined.

我很好奇为什么那条线是唯一给出错误的线。我一直在写tuple(...),好像它等同于tuple([...])但似乎它们毕竟不一样。

我还检查了 Python 3.4.3 在定义的行上给出了一个错误B1B2并且B3至少看起来更一致。

0 投票
3 回答
971 浏览

python - 重用生成器表达式

生成器表达式是一个非常有用的工具,与列表推导相比有一个巨大的优势,那就是它不会为新数组分配内存。

我在使用生成器表达式时面临的问题是,我最终只能编写列表推导式,它只能使用一次这样的生成器:

上面的代码说明了生成器表达式如何只能使用一次。这是当然的,因为生成器表达式返回生成器的一个实例,而不是定义一个可以一次又一次实例化的生成器函数。

有没有办法在每次使用生成器时克隆它,以使其可重用,或者使生成器表达式语法返回生成器函数而不是单个实例?

0 投票
2 回答
247 浏览

python - 列表理解中的生成器表达式未按预期工作

以下代码产生预期的输出:

但是,当我改用生成器表达式时,会得到不同的结果:

我知道生成器表达式只能使用一次,但是我无法推理为什么在这种情况下我会两次获得相同的列表,特别是因为生成器对象似乎是唯一的。

我在这里想念什么?这是在 Python 3.6.5 上测试的。

0 投票
3 回答
445 浏览

python - 通过带有条件的生成器表达式分配两个变量?

下面的代码有一个包含各种奶酪及其数量的字典。根据预先确定的销售项目清单,代码会打印出销售的奶酪总量与全价的对比。

我正在使用生成器表达式来计算总数,但我想知道是否有一种方法可以压缩我的代码以使用某种 if-else 条件同时分配sale_count和变量,因为生成器的代码实际上是full_price_count相同的。

0 投票
6 回答
3608 浏览

python - 为什么这条线不在 python 中打印 123...n?

最近我开始学习 python 编程语言,但在打印 123..n 序列时遇到了困难:

我得到了这个输出:

预期输出:
1234....n
(注意:仅连续输出)

0 投票
1 回答
365 浏览

generator-expression - 如何在 python 中使用生成器表达式来创建奇数列表?

我将如何将下面的程序更改为产生相同结果的生成器表达式?