问题标签 [dictionary-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 回答
369 浏览

python - 可以使用 python 字典理解来创建子字符串及其位置的字典吗?

给定一个字符串,我想创建一个包含字符串中所有 n 个字符子字符串的字典,其中字典键是子字符串,值是列表。列表的第一个元素是子字符串的出现次数,列表的第二个元素是这些出现的起始位置的列表。

例如,使用n=3时,字符串'abcdabcxdabc'会出现在这个字典中:

下面的代码有效且高效,因为它只遍历字符串一次,但我想知道是否有更优雅和/或更pythonic的方式来做到这一点,也许使用字典理解。我对 python 还是很陌生,仍然试图弄清楚何时使用理解等有意义(甚至可能)。

更新:感谢所有回复。他们通常证实了我的怀疑,即这太复杂而无法在单一的理解中有效地实现(但感谢火山表明如果效率不是问题,这是可能的)。感谢 RemcoGerlich 和 Ignacio Vazquez-Abrams 将我指向 defaultdict。我将不得不深入研究。我的计时结果表明,与 dict 相比,初始化 defaultdict 的开销要多一些,但运行时间可能会稍微快一些,至少对于这个例子来说是这样。(计时结果发布在下面的单独评论中。)现在我想知道是否有任何情况下 dict 比 defaultdict 更受欢迎。另外,感谢 Narcolei 向我指出 timeit 功能。

0 投票
2 回答
4613 浏览

python - 如何在 Python 中以正确的顺序构造嵌套字典理解?

我试图缩短代码当我遇到此问题的代码。

基本上,我正在尝试嵌套字典理解,但尝试失败。这是我尝试过的。

当我运行它时,它给了我

而且,当我颠倒这样的for陈述时

结果是

dictionary我需要有关(或list)理解的嵌套结构的帮助。一个例子会有很大帮助。

0 投票
5 回答
1167 浏览

python - 试图将python嵌套的for循环转换为list/dict理解

我正在尝试将以下代码转换为更具可读性的代码。


它需要一个字典列表,并为当前字典中尚不存在的 任何键添加具有默认值 = '' 的键:值对。

我还是 python 的新手,所以任何帮助将不胜感激。我试过了:

但我认为你不能有“=”

0 投票
1 回答
57 浏览

python - 如何评估嵌套 Python 字典中的属性

运行以下代码时,Python2.7 会抛出 NameError。当第二个字典paychecks, 被评估时,就会发生这种情况。第一个 dictemployees很好。

这是无效的 Python 还是我的代码中的错误?还有什么更好的方法呢?

0 投票
1 回答
56 浏览

python - 可以压缩成字典理解吗?

是否可以将其压缩到字典理解中?另外,第 1 行的列表理解是否必要?我不确定如何将每个键本身变成列表理解。

0 投票
1 回答
10539 浏览

python - Alternative to dict comprehension prior to Python 2.7

How can I make the following functionality compatible with versions of Python earlier than Python 2.7?

0 投票
3 回答
18016 浏览

python - OrderedDict 推导式

我可以在 python 中为其他 dicts 的 dict 理解扩展语法,比如collections模块中的 OrderedDict 或我自己的继承自的类型dict

只是重新绑定dict名称显然是行不通的,{key: value}理解语法仍然为您提供了一个简单的旧字典,用于理解和文字。

那么,如果可能的话,我将如何去做呢?如果它只适用于 CPython 就可以了。对于语法,我想我会尝试使用O{k: v}前缀,就像我们在r'various' u'string' b'objects'.

注意: 当然我们可以使用生成器表达式,但我更感兴趣的是看看 python 在语法方面是如何被破解的。

0 投票
4 回答
1211 浏览

python - 在 Python 中进行列表/字典理解时是否可以访问当前对象?

试图想出一个单线来实现以下目标(对一个键的所有值求和):

单行版本,不使用任何导入,如 itertools、collections 等。

在 Python 中是否可以使用对当前正在理解的对象的引用?如果没有,是否有任何方法可以在不使用任何导入的情况下以单行方式实现这一点,即使用基本的列表/字典理解和内置函数。

0 投票
2 回答
2299 浏览

python - 字典理解中的三元表达式

我正在尝试反转字典。在许多键具有相同值的情况下,新键(旧值)应该与一组新值(旧键)相关联。我解决了这个问题,但我正在尝试使用字典理解和一些辅助方法进行重构。

但是,这会引发语法错误

希望该代码中的对齐方式正确。它应该指向子句:中的第二个 , 。else知道这里有什么吗?我已经尝试了尽可能多的括号形式。

0 投票
5 回答
1621 浏览

python - 用于映射拼字游戏字母分布的 dict 理解

我有一个清单:

每当通过上述列表时,我必须编写一个函数,该函数给出一个包含一个字母到分数映射的字典。请帮助我编写函数...!