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

python - 生成器表达式与列表推导

什么时候应该使用生成器表达式,什么时候应该在 Python 中使用列表推导式?

0 投票
9 回答
37895 浏览

python - 如何使用 List Comprehension 将 Python 中的二维数组合并为一个字符串?

列表理解对我来说似乎就像正则表达式对我来说是一块不透明的花岗岩。我需要指针。

说,我有一个二维列表:

我想将其合并到一个长列表中

或带分隔符的字符串:

真的,我想知道如何做到这两点。

0 投票
9 回答
7607 浏览

python - 如何有效地过滤 Python 列表理解中的计算值?

Python 列表推导语法使过滤推导中的值变得容易。例如:

将返回 mylist 中整数平方的列表。但是,如果测试涉及一些(昂贵的)计算并且您想过滤结果怎么办?一种选择是:

这将产生一个非“假”的代价昂贵(x)值的列表,但是对于每个 x 调用两次代价高昂()。是否有一种理解语法允许您进行此测试,同时每个 x 只调用一次昂贵的?

0 投票
2 回答
1603 浏览

functional-programming - 列出方案的理解库?

我知道有一个用于通用 lisp ( incf-cl ) 的列表理解库,我知道它们在各种其他功能性(和一些非功能性)语言(F#、Erlang、Haskell 和 C#)中都受到原生支持 - 有没有Scheme的列表理解库?

incf-cl 在 CL 中作为一个使用宏的库来实现——难道不能使用相同的技术为 Scheme 创建一个吗?

0 投票
3 回答
2494 浏览

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

以下测试失败:

换句话说:

0 投票
12 回答
14419 浏览

python - 在可迭代的东西中计算匹配元素的最pythonic方法

我有一个可迭代的条目,我想收集一些简单的统计数据,比如所有可被 2 整除的数字的计数和所有可被 3 整除的数字的计数。

我的第一个选择,虽然只遍历列表一次并避免列表扩展(并牢记拆分循环重构),但看起来相当臃肿:

(备选案文 1)

这看起来相当不错,但有将表达式扩展为列表的缺点:

(备选案文 2)

我真正想要的是像这样的函数:

(替代项 3)

但这看起来很像可以在没有函数的情况下完成的事情。最后的变体是这样的:

(替代项 4)

虽然最小(在我的书中可能是最优雅的),但感觉它并不能很好地表达意图。

所以,我对你的问题是:

您最喜欢哪种选择来收集这些类型的统计数据?如果您有更好的选择,请随时提供您自己的替代方案。

为了消除下面的一些混淆:

  • 实际上,我的过滤谓词比这个简单的测试更复杂。
  • 我迭代的对象比数字更大更复杂
  • 我的过滤器函数更加不同并且难以参数化为一个谓词
0 投票
2 回答
353 浏览

openoffice.org - 开放式办公室电子表格中的列表理解

列表理解是一种非常有用的代码机制,可以在多种语言中找到,例如 Haskell、Python 和 Ruby(仅举几例)。我对结构很熟悉。

我发现自己正在处理一个开放式办公室电子表格,我需要做一些相当普遍的事情:我想计算一系列单元格中介于上限和下限之间的所有值。我立即认为列表理解可以解决问题,但我在 Open Office 中找不到类似的东西。有一个名为“COUNTIF”的函数,它有点类似,但不是我需要的。

Open Office 中是否有可用于列表理解的构造?

0 投票
4 回答
456 浏览

list-comprehension - 我应该怎样称呼执行列表推导的 REBOL 函数?

REBOL 没有内置的方法来执行列表推导。但是,REBOL 有一个强大的工具(称为parse),可用于创建领域特定语言 (DSL)。我曾经parse为列表推导创建过这样的迷你 DSL。为了解释表达式,包含理解的块被传递给一个函数,由于没有更好的术语,我称之为comprehend.

例子:

出于某种原因,comprehend对我来说听起来不正确,但是类似eval的东西太笼统了。

我还没有找到任何其他需要关键字或函数来进行列表理解的语言。无论它们存在于何处,它们都是纯语法糖。不幸的是,我没有那个选项。那么,既然我必须有一个函数,那么它的一个好的、简洁、合乎逻辑的名称是什么?

0 投票
2 回答
811 浏览

python - Python中的意外列表理解行为

我相信我被嵌套范围规则和列表理解的某种组合所困扰。 Jeremy Hylton 的博客文章暗示了原因,但我不太了解 CPython 的实现,无法弄清楚如何解决这个问题。

这是一个(过于复杂?)示例。如果人们有一个更简单的演示它,我想听听。问题:使用 next() 的列表推导填充了上一次迭代的结果。

编辑:问题:

这到底是怎么回事,我该如何解决?我必须使用标准 for 循环吗?显然,该函数运行了正确的次数,但列表推导式以最终值结束,而不是每个循环的结果。

一些假设:

  • 发电机?
  • 懒惰填写列表推导?

代码

输出

0 投票
17 回答
52624 浏览

ruby - Ruby 中的列表理解

为了做相当于 Python 列表推导,我正在做以下事情:

有没有更好的方法来做到这一点......也许用一个方法调用?