问题标签 [defaultdict]

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 回答
19652 浏览

python - 有没有巧妙的方法将密钥传递给 defaultdict 的 default_factory?

一个类有一个构造函数,它接受一个参数:

在代码中的某处,dict 中的值知道它们的键很有用。
我想使用 defaultdict 与传递给新生儿默认值的键:

有什么建议么?

0 投票
5 回答
701 浏览

python - 宽容的字典

我想知道如何创建宽容的字典(如果引发 KeyError 则返回默认值的字典)。

在下面的代码示例中,我会得到一个 KeyError;例如

为了不得到一个,我会 1. 必须捕获异常或使用 get。

我不想用我的字典这样做......

0 投票
6 回答
4400 浏览

python - 是否有无限嵌套的默认字典的标准类?

有谁知道 Python 中是否有用于无限嵌套字典的标准类?

我发现自己在重复这种模式:

如果我想添加“另一层”(例如d['abc']['def']['xyz']['wrt']),我必须定义另一个 defaultdicts 嵌套。

为了概括这种模式,我编写了一个简单的类,它重写__getitem__以自动创建下一个嵌套字典。

例如

但是,有谁知道这个想法的预先存在的实现?我试过谷歌搜索,但我不确定这会叫什么。

0 投票
11 回答
77949 浏览

python - `if key in dict` 与 `try/except` - 哪个更易读?

我有一个关于习语和可读性的问题,对于这种特殊情况,Python 哲学似乎存在冲突:

我想从字典 B 构建字典 A。如果 B 中不存在特定键,则什么也不做并继续。

哪种方式更好?

或者

“做并请求宽恕”与“简单明了”。

哪个更好?为什么?

0 投票
16 回答
608637 浏览

python - collections.defaultdict 是如何工作的?

我已经阅读了 python 文档中的示例,但仍然无法弄清楚这种方法的含义。有人可以帮忙吗?这是python文档中的两个示例

参数intlist用途是什么?

0 投票
2 回答
666 浏览

python - 如何定义和填充列表的字典

我必须填写以下类型的字典:

这可以通过这种方式完成:

有没有更有效的方法?就像是:

将是完美的,但不幸的是不起作用,因为defaultdict想要一个可调用的作为第一个参数

0 投票
1 回答
1585 浏览

python - 为什么 collections.deque 比 collections.defaultdict 慢?

请原谅我以如此笼统的方式询问,因为我确信它们的性能取决于人们如何使用它们,但在我的情况下,它比我想要验证值的存在时collections.deque慢得多。collections.defaultdict

我使用了来自 Peter Norvig 的拼写更正,以便根据一小组单词验证用户的输入。由于我没有使用带有词频的字典,所以我一开始使用了简单list的而不是,但当我注意到单个单词查找大约需要 25 秒时,就将defaultdict其替换为。deque

令人惊讶的是,这并不比使用 a 快,list所以我几乎立即返回使用defaultdictwhich 返回的结果。

有人可以向我解释这种性能差异吗?

提前致谢


PS:如果你们中的任何一个想要重现我所说的内容,请更改 Norvig 脚本中的以下行。

0 投票
1 回答
4069 浏览

python - python collections.defaultdict() 编译错误

以下代码足够简单明了,编译时会产生错误:

产生的错误是:

任何的想法?提前致谢

0 投票
3 回答
4729 浏览

python - 使用 collections.defaultdict 中的键

collections.defaultdict是很棒的。特别是与lambda

有没有办法'foo'在 lambda 中使用给定的键(例如)?例如(不起作用):

0 投票
5 回答
74747 浏览

python - Python defaultdict 和 lambda

在别人的代码中,我阅读了以下两行:

由于 defaultdict 的参数是一个默认工厂,我认为第一行的意思是当我为一个不存在的键 k 调用 x[k] 时(例如像 v=x[k] 这样的语句),键值对(k ,0) 将自动添加到字典中,就像首先执行语句 x[k]=0 一样。我对么?

那你呢?似乎默认工厂将创建一个默认为 0 的 defaultdict。但这具体意味着什么?我试图在 Python shell 中使用它,但无法弄清楚它到底是什么。