问题标签 [list-comprehension]

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 投票
4 回答
652 浏览

python - 如何在python中以更有效的方式重写这个循环

我有以下类型的循环:

然而,for循环正在扼杀很多性能。我曾尝试编写一个 Windows 生成器,以便每次都给我 2 个元素,但它最终仍然需要显式的 for 循环。有没有办法以 Python 的方式使这个更短、更高效?

谢谢

编辑:我忘记了 b 中的元素。对不起,伙计们。然而,我之前的问题的解决方案对我也遇到的其他问题非常有帮助。谢谢。

0 投票
6 回答
444 浏览

python - python中的列表列表?

我需要一个好的函数来在 python 中执行此操作。

0 投票
3 回答
7441 浏览

python - Python:列表理解以分配不同的值

我正在制作一个二维列表,我想用列表理解对其进行初始化。我希望它做这样的事情:

所以它应该返回如下内容:

我该怎么做呢?

谢谢你的帮助。

0 投票
8 回答
80210 浏览

python - 如何处理列表推导中的异常?

我在 Python 中有一些列表理解,其中每次迭代都可能引发异常。

例如,如果我有:

我会ZeroDivisionError在第三个元素中得到一个例外。

如何处理此异常并继续执行列表理解?

我能想到的唯一方法是使用辅助函数:

但这对我来说有点麻烦。

有没有更好的方法在 Python 中做到这一点?

注意: 这是我设计的一个简单示例(参见上面的“例如”),因为我的真实示例需要一些上下文。我对避免除以零错误不感兴趣,而是对处理列表理解中的异常感兴趣。

0 投票
4 回答
439 浏览

javascript - 对 Python 和 Javascript 的理解只是非常基础的?

查看 Python 和 Javascript 中的推导式,到目前为止,我看不到一些我认为在 Haskell 等语言推导式中最强大的主要功能。

他们允许像多个生成器这样的东西吗?或者它们只是一个基本的地图过滤器形式?

如果他们不允许多个生成器,我觉得他们很失望 - 为什么这些东西被遗漏了?

0 投票
3 回答
567 浏览

python - 遍历 Python 中的列表

我正在尝试遍历列表并获取列表的每个部分,对其进行编码并在全部完成后将结果连接起来。例如,我有一个字符串,它生成一个列表,每个元素的长度为 16 个字符。

编码函数接受一个 16 字节的字符串并返回结果。但是,按照它的编写方式,它只对列表中的一半元素进行编码。

如果我尝试理解:

它会导致整个列表一次发送。我需要做的是将每个元素分别发送到编码函数,得到结果然后将它们连接在一起。

有没有一种简单的方法可以实现这一目标?

0 投票
3 回答
1347 浏览

python - 在 Python 函数调用的参数列表中嵌套生成器表达式

有时,我喜欢使用以下习语将列表组合在一起:

(我知道有更简单的方法可以获得这个特定的结果,但是当你想要迭代列表列表中的元素时,它会派上用场,或者类似的东西。问题是,当你使用生成器表达式时,这个变得容易出错。例如

这里发生的是内部生成器表达式作为参数传递给itertools.chain,因此在评估它们时,外部生成器表达式已完成,并n固定为其最终值'b'. 我想知道除了“不要那样做”之外,是否有人想过避免这种错误的方法。

0 投票
10 回答
20753 浏览

python - lambda 与列表理解性能

我最近使用 lambda 函数发布了一个问题,并且在回复中有人提到 lambda 已经失宠,改为使用列表推导。我对 Python 比较陌生。我进行了一个简单的测试:

它们都打印相同的 N 所以我评论了 print stmt out (除了最后一种方式它是无序的),但是在重复测试中产生的时间差异很有趣,如这个例子所示:

因此,虽然我发现列表推导总体上更易于阅读,但至少在这个示例中似乎存在一些性能问题。

所以,两个问题:

  1. 为什么 lambda 等被推到一边?

  2. 对于列表理解方式,是否有更有效的实现方式?如果不进行测试,您如何知道它更有效?我的意思是,由于额外的函数调用,lambda/map/filter 的效率应该较低,但它似乎更有效率。

保罗

0 投票
3 回答
40814 浏览

python - 反引号对 python 解释器意味着什么:`num`

我正在玩列表推导,我在另一个网站上遇到了这个小片段:

我花了几分钟尝试复制该功能(通过键入),然后才意识到该`num`位正在破坏它。

在这些字符中包含一个语句有什么作用?据我所知,它相当于str(num)。但是当我计时时:

它需要 4.09 秒,而:

耗时 2.43 秒。

两者都给出相同的结果,但一个要慢得多。这里发生了什么?

编辑:奇怪...repr()给出的结果比`num`. 2.99 秒与 2.43 秒。使用 Python 2.6(尚未尝试 3.0)。

0 投票
4 回答
8490 浏览

python - Python:一个变量依赖于另一个变量的复杂列表推导(x for x in t[1] for t in tests)

我想做类似的事情:

测试看起来像:

所以我想要结果

我的代码不起作用,Python 说:

有什么简单的方法可以做到这一点吗?