问题标签 [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 回答
56 浏览

python - python中打印元组和列表的区别

当我在列表和元组之间更改输出类型时,一个显示输出,而另一个仅显示结果的位置。为什么会这样?

0 投票
1 回答
4481 浏览

python - Sum of objects' prices in Django template

I would like to compute the total of a shopping cart in my template: This is my template with a table of products. I tried to use a Generator expression in my cart method but it doesn't work. Any thoughts?

cart.html

views.py

0 投票
2 回答
367 浏览

python - 集合的 Python 联合引发 TypeError

考虑一系列集合:

将它们直接传递给 union 方法会产生正确的结果:

但是将它们作为列表或生成器表达式传递会导致 TypeError:

为什么会发生,有哪些解决方案?

0 投票
0 回答
115 浏览

python - 列表理解与将生成器表达式传递给列表

有一种观点认为,列表推导式是将生成器表达式传递给list( 1 , 2 ) 的语法糖。虽然我无法确定内部动态来证明情况并非如此,但我已经能够证明这两种方法之间存在 O(n) 差异:

O(n) 计算:

我查看了dis.dis. 这在后者中显示了不同的处理顺序,但我不清楚这些函数调用了什么参考:

有人可以准确地澄清这里发生了什么吗?

0 投票
1 回答
280 浏览

python - 跳过生成器表达式中的条目

跳过使用函数和另一个生成器创建的生成器表达式中的条目的最佳方法是什么?

本质上,我正在寻找一个看起来像这样的表达式:

(但该continue语句显然在这种情况下不起作用)

从功能上讲,它应该是这样的:

0 投票
2 回答
818 浏览

python - 如何检查第二个子列表中是否存在元素?

如果我有这样的清单:

我知道我可以通过以下方式检查 eg'f'是否包含在任何子列表中:any

但是我将如何搜索第二个子列表,即如果列表以下列方式初始化:

我尝试for in像这样链接表达式:

但是,这会崩溃,因为name 'sublist' is not defined.

0 投票
0 回答
121 浏览

python - Python pymler.asizeof.asizeof 为生成器表达式返回 0

我目前正在为我的最终项目比较生成器表达式和列表理解,并且在此过程中想比较它们的内存占用。(注意:我阅读了这篇文章,但无法回答我将向您提出的问题How do I determine the size of an object in Python?)我首先为每种类型的结构定义了两个任意实例:

现在我首先尝试分析它们的长度sys.getsizeof,得到 192a和 88 b(以及 48 为空白range(10))。

我不是 100% 确定sys.getsizeof包含range-instance,因为它可能只是由生成器表达式实例引用,而 afaik 引用不计入getsizeof,所以我也尝试调用pympler.asizeof.asizeof这两个实例,产生 504 的a,48 的纯range(10)而奇怪的 0 为b. 求助于 pympler 文档,我注意到有一个ignored参数asizeof忽略了某些类型。我又试了一次,ignored=False但得到了完全相同的结果。

我想知道的是为什么生成器表达式的大小为 0 到asizeof以及我是否可以依靠sys.getsizeof给我正确的生成器值(毕竟这看起来很现实)。

0 投票
0 回答
32 浏览

python - 使用生成器表达式进行异常广播 (Python)

我遇到了以下行为。使用了具有以下结构的代码块,

SomeException在生成元组期间(在生成器表达式中)引发时,try-except块没有处理它,而是整个程序停止了。为什么呢?有没有办法确保在genexpr中遇到异常。是否“广播”到外部范围?

具体例子

test.py

tuple_gen考虑使用一个空文件作为输入(as stdin)迭代生成器的一个实例。遇到 EOF 时,pyIn生成器终止并因此next(pyIn)引发StopIteration,但程序没有被except块捕获,而是停止。

例如,保存一个空test.txt文件(只是一个空行)并在(Windows)控制台上运行它

导致以下回溯:

更新

正如 timgeb 在评论中指出的那样,这个问题解释了手头的问题。

0 投票
1 回答
157 浏览

python - 埃拉托色尼筛中的生成器递归跳过步骤

我在这里写的筛算法遇到了问题。我已经尝试修复它总共大约 10 个小时。我在这里四处寻找类似的问题,但似乎找不到遇到此问题的人。我对 python 比较陌生,在阅读了很多生成器文档之后,我设法编写了可以工作的代码。但是,我仍然不知道为什么我的第一次尝试失败了。

我想出的只是在每个连续的筛分步骤中似乎 gen1 实际上并没有被清空。因此,我尝试在名称 gen1 和 gen2 之间交替,删除每个名称以避免此问题。那也没有用。

我真的很感激对此的一些见解,以及任何改进我现在所拥有的建议。

这是失败的代码:

这是我当前的代码:

0 投票
3 回答
147 浏览

python - 函数调用中的循环与显式列出所有参数之间的区别

我有一个按第一个列表对列表列表进行排序的函数。当我将函数与如下变量一起使用时:

它完美地工作。虽然,由于我不知道我的输入包含多少个列表,但我想将其用作我的变量:

尽管这会返回一个列表(超级列表)的排序。为什么这些变量之间存在差异,我该如何改进代码?

这是决定性的函数(这里 IN[0] 是带有多个子列表的输入):

我想使用这个输出: