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

python - 一个用于有条件地替换字典值的衬垫

有没有更好的方法来使用列表理解来表达这一点?或者任何其他方式在一行中表达这一点?

我想用 col 字典中的相应值替换原始字典中的每个值,或者如果它不在 col 字典中,则保持不变。

0 投票
11 回答
262468 浏览

python - Double Iteration in List Comprehension

In Python you can have multiple iterators in a list comprehension, like

for some suitable sequences a and b. I'm aware of the nested loop semantics of Python's list comprehensions.

My question is: Can one iterator in the comprehension refer to the other? In other words: Could I have something like this:

where the current value of the outer loop is the iterator of the inner?

As an example, if I have a nested list:

what would the list comprehension expression be to achieve this result:

?? (Please only list comprehension answers, since this is what I want to find out).

0 投票
7 回答
7565 浏览

python - Python中的列表理解:列表中的有效选择

假设我有一个元素列表,并且我想根据某个函数(例如到另一个元素的距离)只选择其中的一些。

因此,我想要一个包含距离和元素的元组列表。所以,我写了下面的代码

但是myFunction是一个非常耗时的功能,而且originalList相当大。这样做,myFunction将为每个选定的元素调用两次。

那么,有没有办法避免这种情况??

我还有另外两种可能性,但它们不太好:

  1. 第一个,是创建未过滤的列表

    然后排序

    但在那种情况下,我复制了我的 originalList并浪费了一些内存(列表可能非常大 - 超过 10,000 个元素)

  2. 第二个是棘手的,不是很pythonic,但很有效(我们能做的最好的,因为函数应该每个元素评估一次)。myFunction将它的最后一个
    结果存储在一个全局变量中(lastResult例如),并且这个值在列表理解中被重用

    /li>

你有什么更好的想法来实现这一点,以一种高效和 Pythonic 的方式吗?

感谢您的回答。

0 投票
8 回答
19536 浏览

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

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

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

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

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

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

0 投票
13 回答
274655 浏览

python - 列表理解与地图

是否有理由更喜欢使用map()列表理解,反之亦然?它们中的任何一个通常比另一个更有效还是被认为通常更pythonic?

0 投票
4 回答
20550 浏览

php - PHP 是否具有与 Python 的列表理解语法等价的功能?

Python 具有语法甜美的列表推导:

在 PHP 中,我需要做一些循环:

要得到:

数组 ( [0] => 0 [1] => 1 [2] => 4 [3] => 9 [4] => 16 [5] => 25 [6] => 36 [7] => 49 [8] => 64 [9] => 81)

无论如何在PHP中获得类似的列表理解语法吗?无论如何,PHP 5.3 中的任何新功能都可以做到这一点吗?

谢谢!

0 投票
3 回答
10366 浏览

python - 来自列表理解的结果顺序是否得到保证?

使用列表推导式时,是否以任何方式保证新列表的顺序?作为一个人为的例子,列表理解的定义保证了以下行为:

同样,是否保证以下平等:

具体来说,这是我在这里感兴趣的顺序。

0 投票
5 回答
14443 浏览

python - 在 Python 中使用列表理解映射嵌套列表?

我有以下代码,用于在 Python 中映射嵌套列表以生成具有相同结构的列表。

这可以仅通过列表理解来完成(不使用 map 函数)吗?

0 投票
5 回答
11071 浏览

scala - Scala 的理解:重要特性还是语法糖?

当我第一次开始研究 Scala 时,我喜欢用于理解的外观。它们看起来有点像我在 Java 5 中习惯使用的 foreach 循环,但有功能限制和很多优美的语法。

但是当我吸收了 Scala 风格时,我发现每次我可以使用压缩时,我都在使用map, flatMap, filter, reduceandforeach代替。这样,代码的意图对我来说似乎更清楚,潜在的隐藏惊喜更少,而且它们通常也是更短的代码。

据我所知,无论如何,理解总是被编译成这些方法,所以我想知道:它们实际上是为了什么?我是否错过了一些功能上的更新(这不是第一次)?理解是否能做其他功能不能做的事情,或者至少会更笨拙?它们是否在特定用例下大放异彩?真的只是个人口味的问题吗?

0 投票
4 回答
497 浏览

python - Python中的详细列表理解

我有一个整数列表,我想创建一个所有元素都小于给定限制的新列表。

我解决这个问题的方法是

对我来说,开头的“i for i in”看起来很冗长。Python中有更好的实现吗?