问题标签 [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.
python - 如何在python中以更有效的方式重写这个循环
我有以下类型的循环:
然而,for循环正在扼杀很多性能。我曾尝试编写一个 Windows 生成器,以便每次都给我 2 个元素,但它最终仍然需要显式的 for 循环。有没有办法以 Python 的方式使这个更短、更高效?
谢谢
编辑:我忘记了 b 中的元素。对不起,伙计们。然而,我之前的问题的解决方案对我也遇到的其他问题非常有帮助。谢谢。
python - python中的列表列表?
我需要一个好的函数来在 python 中执行此操作。
python - Python:列表理解以分配不同的值
我正在制作一个二维列表,我想用列表理解对其进行初始化。我希望它做这样的事情:
所以它应该返回如下内容:
我该怎么做呢?
谢谢你的帮助。
python - 如何处理列表推导中的异常?
我在 Python 中有一些列表理解,其中每次迭代都可能引发异常。
例如,如果我有:
我会ZeroDivisionError
在第三个元素中得到一个例外。
如何处理此异常并继续执行列表理解?
我能想到的唯一方法是使用辅助函数:
但这对我来说有点麻烦。
有没有更好的方法在 Python 中做到这一点?
注意: 这是我设计的一个简单示例(参见上面的“例如”),因为我的真实示例需要一些上下文。我对避免除以零错误不感兴趣,而是对处理列表理解中的异常感兴趣。
javascript - 对 Python 和 Javascript 的理解只是非常基础的?
查看 Python 和 Javascript 中的推导式,到目前为止,我看不到一些我认为在 Haskell 等语言推导式中最强大的主要功能。
他们允许像多个生成器这样的东西吗?或者它们只是一个基本的地图过滤器形式?
如果他们不允许多个生成器,我觉得他们很失望 - 为什么这些东西被遗漏了?
python - 遍历 Python 中的列表
我正在尝试遍历列表并获取列表的每个部分,对其进行编码并在全部完成后将结果连接起来。例如,我有一个字符串,它生成一个列表,每个元素的长度为 16 个字符。
编码函数接受一个 16 字节的字符串并返回结果。但是,按照它的编写方式,它只对列表中的一半元素进行编码。
如果我尝试理解:
它会导致整个列表一次发送。我需要做的是将每个元素分别发送到编码函数,得到结果然后将它们连接在一起。
有没有一种简单的方法可以实现这一目标?
python - 在 Python 函数调用的参数列表中嵌套生成器表达式
有时,我喜欢使用以下习语将列表组合在一起:
(我知道有更简单的方法可以获得这个特定的结果,但是当你想要迭代列表列表中的元素时,它会派上用场,或者类似的东西。问题是,当你使用生成器表达式时,这个变得容易出错。例如
这里发生的是内部生成器表达式作为参数传递给itertools.chain
,因此在评估它们时,外部生成器表达式已完成,并n
固定为其最终值'b'
. 我想知道除了“不要那样做”之外,是否有人想过避免这种错误的方法。
python - lambda 与列表理解性能
我最近使用 lambda 函数发布了一个问题,并且在回复中有人提到 lambda 已经失宠,改为使用列表推导。我对 Python 比较陌生。我进行了一个简单的测试:
它们都打印相同的 N 所以我评论了 print stmt out (除了最后一种方式它是无序的),但是在重复测试中产生的时间差异很有趣,如这个例子所示:
因此,虽然我发现列表推导总体上更易于阅读,但至少在这个示例中似乎存在一些性能问题。
所以,两个问题:
为什么 lambda 等被推到一边?
对于列表理解方式,是否有更有效的实现方式?如果不进行测试,您如何知道它更有效?我的意思是,由于额外的函数调用,lambda/map/filter 的效率应该较低,但它似乎更有效率。
保罗
python - 反引号对 python 解释器意味着什么:`num`
我正在玩列表推导,我在另一个网站上遇到了这个小片段:
我花了几分钟尝试复制该功能(通过键入),然后才意识到该`num`
位正在破坏它。
在这些字符中包含一个语句有什么作用?据我所知,它相当于str(num)。但是当我计时时:
它需要 4.09 秒,而:
耗时 2.43 秒。
两者都给出相同的结果,但一个要慢得多。这里发生了什么?
编辑:奇怪...repr()
给出的结果比`num`
. 2.99 秒与 2.43 秒。使用 Python 2.6(尚未尝试 3.0)。
python - Python:一个变量依赖于另一个变量的复杂列表推导(x for x in t[1] for t in tests)
我想做类似的事情:
测试看起来像:
所以我想要结果
我的代码不起作用,Python 说:
有什么简单的方法可以做到这一点吗?