问题标签 [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.
c# - C# 有什么可以与 Python 的列表推导相媲美的吗?
我想在 C# 中生成一个列表。我缺少 python 的列表理解。是否有一种 C# 方法可以像 Python 中的列表推导或生成器表达式那样动态创建集合?
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
:
python - 在 Python dict 中访问同级字典值的最有效方法是什么?
在 Python 中,我有一个字典列表,如下所示:
而且,我有一个变量:
检索项目域值的最有效方法是什么?
python - 如何创建 lambda 列表(在列表理解/for 循环中)?
我想从 Python 中的常量列表创建一个 lambda 对象列表;例如:
但是,当我运行它们时,这将创建一个 lambda 对象列表:
我希望它会打印
相反,它打印:
似乎所有 lambdas 都被赋予了错误的参数。我做错了什么,有没有办法解决它?我认为我在 Python 2.4 中。
编辑:多一点尝试的东西等等想出了这个:
打印从 1 到 25 的期望方格,然后使用前面的 print 语句:
仍然给我所有25
的s。这两个打印调用之间现有的 lambda 对象是如何变化的?
python - 理解展平一系列序列?
如果我有序列序列(可能是元组列表),我可以使用 itertools.chain() 来展平它。但有时我觉得我宁愿把它写成一种理解。我只是不知道该怎么做。这是一个非常容易理解的案例:
假设我想交换序列中每一对的元素。我在这里使用字符串作为序列:
我在序列的偶数和奇数切片上使用 zip 来交换对。但我最终得到了一个现在需要展平的元组列表。所以我使用链()。有没有办法我可以用理解来表达它?
如果您想针对交换对的元素的基本问题发布您自己的解决方案,请继续,我会投票赞成任何教给我新知识的东西。但我只会将针对我的问题的答案标记为已接受,即使答案是“不,你不能。”。
python - python:列表理解策略
我正在寻找一个字符串并创建一个构建原始字符串的字符串列表。
例如:
我敢肯定有一种“pythonic”的方式来做到这一点;我想我只是在失去理智。完成这项工作的最佳方法是什么?
python - Python:对于每个列表元素,在列表中应用一个函数
鉴于[1,2,3,4,5]
,我该怎么做
我想存储所有结果,找到最小值,然后返回用于查找最小值的两个数字。因此,在我上面描述的情况下,我想返回(1,5)
.
所以基本上我想做类似的事情
对于列表中的每个元素i
,映射列表中所有元素的某个函数,以i
和j
作为参数将结果存储在主列表中,在主列表中找到最小值,并返回用于计算该最小值的i
参数j
。
在我真正的问题中,我有一个对象/坐标列表,我使用的函数需要两个坐标并计算欧几里得距离。我试图找到任意两点之间的最小欧几里德距离,但我不需要花哨的算法。
python - 理解 Python 列表推导的问题
以下代码中的最后一行是什么意思?
我对这个问题的尝试:
- "".join... 使用 join 方法来清空文本
- e[1] * e[0] 将序列中的两个后续值相乘,e
- 我不确定什么是 e
- 我不确定,当你在 for -loop 之前有一些东西时,这意味着什么,比如:
e[1] * e[0] for e in elt
list - Erlang,列表理解语法
我在 Erlang 中看到了这段代码:
在那一行中,我发现-$0
语法非常有用。
我阅读了代码并估计了它的含义,但我不太确定:它是否拆分了所有数字?
我想查看该语法的解释或手册页,但找不到。谁能告诉我正确的页面?