问题标签 [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 投票
5 回答
2605 浏览

python - 如何使用python生成器表达式创建oneliner以多次运行函数并获取列表输出

我想知道是否有一种简单的 Pythonic 方式(可能使用生成器)来对列表中的每个项目运行一个函数并产生一个返回列表?

例子:

我注意到,当我对此进行逐行调试时,传递给函数的对象是生成器。

因此,我收到一个错误: TypeError: unsupported operand type(s) for *: 'generator' and 'generator'

我知道这个生成器表达式创建了一个要传递给函数的生成器,但我想知道是否有一种很酷的方法可以仅通过指定一个可迭代作为参数来完成多次运行该函数?(无需修改函数以期望可迭代)。

在我看来,这种能力对于减少代码行非常有用,因为您不需要创建一个循环来为函数提供乐趣,也不需要创建一个变量来将输出保存在列表中。

谢谢!

0 投票
1 回答
460 浏览

python - 在 Python 中将 yield 语句转换为生成器表达式

我有一个关于将 yield 语句转换为生成器表达式的问题

所以我有这个小的 yield 方法,它获取一个函数和一个起始数字作为它的输入,并且基本上为每个之前调用的数字调用该函数,即:

  • 第一次调用返回初始数字
  • 第二次调用返回函数(初始编号)
  • 第三次调用返回函数(第二个数字)
  • 第四个调用返回函数(第三个数字)

等等。这是 Python 中的代码:

将此代码段转换为生成器表达式的方法是什么?我猜有一种非常pythonic和优雅的方式来做到这一点,但我就是无法理解它。

我对生成器表达式很不熟悉,因此我为什么要寻求帮助,但我确实想扩展我对 Gen Exp 的一般知识,特别是 Python 的知识

0 投票
2 回答
3156 浏览

python - 在初始化时填充默认字典

如何为 defaultdict 获取可调用工厂以允许对其进行理解?我认为这可能是不可能的,但我想不出一个很好的理由?

0 投票
1 回答
46 浏览

generator-expression - 字典视图上的 Python 生成器似乎没有被懒惰地评估

我的理解是,python 生成器表达式返回延迟评估的理解,并且字典上的视图对象会在其底层字典发生更改时更新。

给定以下代码(Python 2.7.6 Windows):

我希望输出如下:

相反,我收到:

如果我在添加到字典后重新创建生成器,或者打印视图本身,我确实会看到预期的输出。我对生成器有什么不了解的地方?我对python很陌生。

0 投票
2 回答
41 浏览

python - 生成器表达式,访问迭代器

我正在尝试escape通过将它们与另一个项目列表进行检查来检查列表中的项目。我可以过滤列表:

现在我想将转义字符放在找到的每个项目的前面。像这样的东西:

需要的行为:

必须如何编写生成器表达式才能完成此操作?有没有更好的方法来获得预期的结果?

0 投票
1 回答
86 浏览

python - 生成器表达式,获得与在 for 循环中使用 append 或 extend 相同的结果

append在给出for-loop了一个list带有子列表的

使用extendinfor-loop给出了一个list

append使用这个生成器表达式与在 a中使用的结果相同for looplist带有子列表的 a

我的问题是,有没有办法设置生成器表达式以提供与extend在 for 循环中使用相同的结果

0 投票
4 回答
113 浏览

python - 使用生成器表达式加载选项字典

我有这种格式的选项文件:

key value\t\n

注意:B:。一些值在它之后显示选项卡。

我使用如下代码:

我可以使用生成器表达式来获得相同的结果吗?

0 投票
1 回答
423 浏览

python - 嵌套生成器表达式 - 意外结果

这是测试代码:

假设第 3 行 ( nums = ...) 上的生成器表达式形成了一个迭代器,我希望最终结果反映和的最终分配unitstens。OTOH,如果要在第 3 行评估生成器表达式,生成结果元组,那么我希望使用unitsand的第一个定义tens

我看到的是 MIX;即,结果是[31, 41, 32, 42]!?

谁能解释这种行为?

0 投票
1 回答
81 浏览

python - 将生成器表达式传递给 all()

内置函数all()应该等效于:

但是当一个生成器表达式被传递给all()时,行为是不同的:

其他类似的内置插件也是如此。有没有简单的方法来解决它?(由于占用空间,将生成器表达式转换为元组或列表并不是一个真正的选择。)

0 投票
2 回答
571 浏览

python - Python:使用生成器表达式时,any() 返回错误答案

我需要知道列表中的任何元素是否符合特定标准。为此,我想在 any() 函数中使用生成器表达式,但输出似乎行为不端:

如果我改为使用列表,我会得到正确的答案:

我已经在两台不同的 Windows 7 计算机上进行了尝试,一台使用 python 2.7.2,另一台使用 2.7.3。两者都返回错误的答案。我有人在他们有 python 2.7.5 的机器上试了一下,他得到了正确的答案。有人知道这里发生了什么吗?