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

c# - C# 有什么可以与 Python 的列表推导相媲美的吗?

我想在 C# 中生成一个列表。我缺少 python 的列表理解。是否有一种 C# 方法可以像 Python 中的列表推导或生成器表达式那样动态创建集合?

0 投票
4 回答
4213 浏览

python - 在 Python 中,是否有一种简洁的方法来使用具有多个迭代器的列表推导?

基本上,我想在两个迭代器的“笛卡尔积”上建立一个列表理解。想想下面的Haskell 代码

产生

我可以以简洁的方式在 Python 中获得类似的行为吗?

0 投票
23 回答
200351 浏览

python - 在 Python 中展平一个浅列表

有没有一种简单的方法可以通过列表理解来展平可迭代列表,或者如果失败了,你们都认为什么是展平这样的浅表、平衡性能和可读性的最佳方法?

我试图用嵌套列表理解来展平这样的列表,如下所示:

但我在NameError那里遇到了各种各样的麻烦,因为name 'menuitem' is not defined. 在谷歌搜索并在 Stack Overflow 上环顾四周后,我得到了预期的结果,并附有以下reduce声明:

但是这个方法相当不可读,因为我需要那个list(x)调用,因为 x 是一个 DjangoQuerySet对象。

结论

感谢所有为这个问题做出贡献的人。这里是我学到的总结。如果其他人想要添加或更正这些观察结果,我也将其设为社区 wiki。

我原来的 reduce 语句是多余的,最好这样写:

这是嵌套列表理解的正确语法(Brilliant summary dF!):

但是这些方法都没有使用效率高itertools.chain

正如@cdleary 所指出的,使用这样的方式来避免 * 运算符魔法可能是更好的风格chain.from_iterable

0 投票
5 回答
1188 浏览

python - 在 Python dict 中访问同级字典值的最有效方法是什么?

在 Python 中,我有一个字典列表,如下所示:

而且,我有一个变量:

检索项目域值的最有效方法是什么?

0 投票
9 回答
25430 浏览

python - 如何创建 lambda 列表(在列表理解/for 循环中)?

我想从 Python 中的常量列表创建一个 lambda 对象列表;例如:

但是,当我运行它们时,这将创建一个 lambda 对象列表:

我希望它会打印

相反,它打印:

似乎所有 lambdas 都被赋予了错误的参数。我做错了什么,有没有办法解决它?我认为我在 Python 2.4 中。

编辑:多一点尝试的东西等等想出了这个:

打印从 1 到 25 的期望方格,然后使用前面的 print 语句:

仍然给我所有25的s。这两个打印调用之间现有的 lambda 对象是如何变化的?

相关问题:为什么 map() 和列表理解的结果不同?

0 投票
4 回答
22455 浏览

python - 理解展平一系列序列?

如果我有序列序列(可能是元组列表),我可以使用 itertools.chain() 来展平它。但有时我觉得我宁愿把它写成一种理解。我只是不知道该怎么做。这是一个非常容易理解的案例:

假设我想交换序列中每一对的元素。我在这里使用字符串作为序列:

我在序列的偶数和奇数切片上使用 zip 来交换对。但我最终得到了一个现在需要展平的元组列表。所以我使用链()。有没有办法我可以用理解来表达它?

如果您想针对交换对的元素的基本问题发布您自己的解决方案,请继续,我会投票赞成任何教给我新知识的东西。但我只会将针对我的问题的答案标记为已接受,即使答案是“不,你不能。”。

0 投票
2 回答
2159 浏览

python - python:列表理解策略

我正在寻找一个字符串并创建一个构建原始字符串的字符串列表。

例如:

我敢肯定有一种“pythonic”的方式来做到这一点;我想我只是在失去理智。完成这项工作的最佳方法是什么?

0 投票
7 回答
103941 浏览

python - Python:对于每个列表元素,在列表中应用一个函数

鉴于[1,2,3,4,5],我该怎么做

我想存储所有结果,找到最小值,然后返回用于查找最小值的两个数字。因此,在我上面描述的情况下,我想返回(1,5).

所以基本上我想做类似的事情

对于列表中的每个元素i,映射列表中所有元素的某个函数,以ij作为参数将结果存储在主列表中,在主列表中找到最小值,并返回用于计算该最小值的i参数j

在我真正的问题中,我有一个对象/坐标列表,我使用的函数需要两个坐标并计算欧几里得距离。我试图找到任意两点之间的最小欧几里德距离,但我不需要花哨的算法。

0 投票
6 回答
12431 浏览

python - 理解 Python 列表推导的问题

以下代码中的最后一行是什么意思?

我对这个问题的尝试:

  • "".join... 使用 join 方法来清空文本
  • e[1] * e[0] 将序列中的两个后续值相乘,e
  • 我不确定什么是 e
  • 我不确定,当你在 for -loop 之前有一些东西时,这意味着什么,比如:e[1] * e[0] for e in elt
0 投票
2 回答
3467 浏览

list - Erlang,列表理解语法

我在 Erlang 中看到了这段代码:

在那一行中,我发现-$0语法非常有用。

我阅读了代码并估计了它的含义,但我不太确定:它是否拆分了所有数字?

我想查看该语法的解释或手册页,但找不到。谁能告诉我正确的页面?