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

python - 为什么 map() 和列表理解的结果不同?

以下测试失败:

换句话说:

0 投票
7 回答
23544 浏览

python - 嵌套/多个列表推导或生成器表达式的用例。什么时候更优雅?

我有时会看到这样的事情:

现在这真的让我的大脑弯曲,我宁愿它不以这种方式呈现。

有没有使用这些嵌套表达式的用例或示例,它比嵌套循环更优雅、更易读?

编辑:感谢您提供简化此方法的示例。这实际上不是我要求的,我想知道是否有任何时候它很优雅。

0 投票
2 回答
13867 浏览

python - Django 自定义查询集过滤器

在 Django 中,是否有一种标准方法可以为 QuerySets 编写复杂的自定义过滤器?

就像我能写的一样

我想做这样的事情:

我可以使用生成器表达式

但这会失去可链接性和 QuerySet 提供的任何其他功能。

0 投票
8 回答
19536 浏览

python - 使用列表理解将字符串转换为 dict

我遇到过这个问题几次,似乎无法找到一个简单的解决方案。说我有一个字符串

我想将其转换为字典,其中 a、b 和 c 是键,0、1 和 3 是它们各自的值(转换为 int)。显然我可以这样做:

但我不太喜欢那个 for 循环,它看起来很简单,你应该能够将它转换为某种列表理解表达式。val这适用于可以是字符串的稍微简单的情况。

但是,我需要即时将 val 转换为 int 并且这样做在语法上是不正确的。

所以我的问题是:有没有办法使用列表理解来消除 for 循环?如果没有,是否有一些内置的 python 方法可以为我做到这一点?

0 投票
2 回答
1135 浏览

python - 为什么这个 genexp 的性能比列表理解差?

我试图找到最快的方法来计算列表中与特定过滤器匹配的项目数。在这种情况下,查找列表中有多少个奇数。

在执行此操作时,比较列表推导式与等效生成器表达式的结果让我感到惊讶:

我也尝试过将 L 作为常规列表,并且大小不同,但在所有情况下,列表理解都会获胜。

与创建包含 100 万个项目的新列表的 listcomp 相比, genexp 做了什么导致它变慢......?

(顺便说一句,我发现最快的方法是:x = 1; len(filter(x.__and__, L))。是的,我知道编写这样的代码会杀死小猫,我这样做是为了好玩)

0 投票
2 回答
20724 浏览

python - 在列表推导或生成器表达式中使用 while

我可以在列表推导/生成器表达式中使用ifand作为for

我知道这不是最有效的,但请耐心等待,因为情况可能要复杂得多,这只是一个例子。但是,这仍然要经过一百次迭代,并且只在前 6 次中产生一个值。有没有办法告诉生成器表达式在哪里停止,如下所示:

但是,while在生成器表达式中无法理解。所以,我的问题是,我如何编写一个带有停止条件的生成器表达式,这样它就不会继续计算,即使它不会产生新值。

0 投票
4 回答
2789 浏览

python - 奇怪的python语法,它是如何工作的,它叫什么?

使用 Python 2.6

3 让我失望,这是我试图解释发生了什么的尝试。

for i in range(4) 使循环循环 4 次,在每个循环开始时将 i 从 0 递增到 3。[不知道 3 在这种情况下意味着什么...] max() 返回传递给它的最大可迭代对象,并将结果打印到屏幕上。

0 投票
1 回答
932 浏览

python - 有没有办法在 Python 中构造惰性序列?

有一个 Django 视图,它Member使用特定的过滤器从数据库中加载对象。

现在我需要改变这个逻辑,先呈现一个特定Member的,然后让其余的顺其自然

最直接的方法是立即执行查询,获取列表,删除并在开头插入项目。但是我很好奇是否还有任何方法可以利用它QuerySet的懒惰性质

在 C# 中,我会写:

作为一个循环将通过members,它会首先得到specificMember,然后使用任何延迟加载逻辑原来db.Members使用

有没有办法在 Django 和 Python 中做同样的事情?

0 投票
3 回答
101 浏览

python - 在 Python 中,如何引用生成器表达式中调用的函数的返回值?

简化,我想做这样的事情:

当然,这是行不通的。

现在,我正在使用:

我不知道第二个代码是如何完成的,还是有另一种语法,或者效率不高等等。我只用了 2 周的 Python 时间。

0 投票
2 回答
2635 浏览

python - Python生成器表达式括号奇怪

我想确定一个列表是否包含某个字符串,所以我使用生成器表达式,如下所示:

当然我想内联这个,所以我这样做:

然后我认为单括号会更好看,所以我尝试:

并不是真的期望它起作用。惊喜!确实如此!

那么这是合法的 Python 还是我的实现允许的东西?如果合法,这里的一般规则是什么?