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

python - 从生成器表达式中获取匹配项

if用生成器表达式编写了一个条件。

如果条件为真,那么我想打印匹配的项目名称。我怎么得到这个?

0 投票
1 回答
12548 浏览

python - 生成器作为函数参数

谁能解释为什么将生成器作为唯一的位置参数传递给函数似乎有特殊规则?

如果我们有:

  1. 正如预期的那样,这有效。

  2. 正如预期的那样,这不起作用。

  3. 正如预期的那样,这有效

  4. 这有效,但我不明白为什么。它不应该以与2相同的方式失败吗?

0 投票
2 回答
4918 浏览

python - 列表理解中的生成器有问题

我正在尝试在 codefights 中完成一项挑战,但我似乎陷入了困境:

当我执行

挑战是: 考虑唯一的质因数是 3、5 和 7 的数字。编写一个程序找出其中的第 n 个最大的数。

示例输出:

  • 对于n = 1输出应该是:1 (3^0 * 5^0 * 7^0).
  • 对于n = 2输出应该是:3 (3^1 * 5^0 * 7^0).
  • 对于n = 6输出应该是:15(3^1 * 5^1 * 7^0).

我知道我远没有解决这个问题我只想知道这里有什么问题。

0 投票
1 回答
103 浏览

python - 为什么以下 Python 生成器表达式有效?

我正试图围绕我在野外遇到的一个常见的生成器习语。我已经注意到它(并使用它)很长时间了,但从来没有费心去质疑它。使用玩具函数的成语示例:

为什么any((char in vowels) for char in string)按预期工作?我知道这(char in vowels)是一个生成器表达式,但例如(char in vowels) for char in string不是函数调用之外的有效生成器。

换句话说,既然上面的代码是有效的,为什么下面的代码不起作用

(显然,使整个表达式成为生成器确实可以按预期工作:

)

我知道这是一个有点愚蠢的问题,但答案对我来说并不是很直观。这只是“因为这是语法的工作方式”的情况,还是我遗漏了什么?

0 投票
1 回答
199 浏览

python - 生成器表达式与产量

我正在观看这个视频(http://pyvideo.org/video/1758/loop-like-a-native-while-for-iterators-genera),最后他谈到了生成器表达式与正常的生成器方式,但似乎并非如此,我读过的其他主题是生成器表达式与产量说没有区别。但是,从我所看到的情况来看,每次生成器表达式不使用时,使用 yield 都会返回到 for 循环。它完成了它的任务,然后返回到 for 循环。这可能是内存使用量的一个相当大的差异(取决于你循环的内容)对吧?我的想法是对的吗?

0 投票
5 回答
3638 浏览

python - 我可以使用生成器表达式打印字典列表的键值对吗?

我有一个字典列表:

我目前打印这样的键值对:

我将如何使用生成器表达式来减少代码行数?

编辑:我试图让自己熟悉生成器表达式,而不仅仅是减少代码行!

0 投票
2 回答
737 浏览

python - 在python中初始化多个列表

有没有一种方法可以在一行中将 x,y,z 初始化(因为我不想为每个列表初始化将 a、b 和 c 相乘),作为单独的 0 列表。在上面如果 x 被更新,那么 y 和 z 也会随着相同的变化同时更新。

0 投票
1 回答
96 浏览

python - 生成器表达式使二进制字符串生成器永远冻结

我编写了一个函数来生成从给定列表开始的s二进制字符串(所有二进制字符串都以一个s项目结尾):

从输出中可以看到它的工作原理:

现在我修改s并使用生成器表达式而不是列表:

现在执行在用尽 3 长度的可能性后突然停止:

我希望第二个版本和第一个版本一样好,因为我从不使用列表方法s,我只是迭代它,为什么第二个版本不工作?

0 投票
2 回答
79 浏览

python - 这是生成器表达式吗?

几天前我问了一个关于列表理解的问题:删除列表中没有出现在另一个列表中的子字符串的项目的优雅方法

无论如何,我的问题得到了很好的答案。这是一个列表理解:

[p for p in process_list if all(e not in p for e in exclude_list)]

我明白了这个想法并将其应用到我的工作中。但我不确定我是否得到了e not in p for e in exclude_list正确的部分。对我来说,它看起来像是一个生成器表达式,但我不确定。我认为最好在另一篇文章中提出这个问题。

那么它是生成器表达式还是其他什么?

0 投票
1 回答
31 浏览

python - 使用 Python3 灵活的 XML 到字典

我收到了一个包含我需要的数据的 XML 文件,我需要将其转换为 CSV。

这应该很简单,但是 XML 的“重复单元”的子节点数并不总是相同的。

我正在努力解决的是如何最好地迭代每个子元素的子元素,直到没有更多子元素,并将其作为一个“行”返回。最终输出应该是一个字典列表(对于 CSV,每个“行”一个列表)。

举个例子

这应该导致:

我一直在使用 xml.etree.ElementTree 和 root.iter,我对循环很满意,但它的活力。

我尝试在这里使用多个嵌套列表的逻辑,但无济于事。有人可以指出我正确的方向并提出一种新方法吗?

我知道最后长度不同的字典对于写出 csv 并不理想,但我可以根据我想要的输出来处理它。