问题标签 [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.
python - 从 defaultdict 中提取信息
我有一个包含数字平均位置计算的 defaultdict(欧拉问题)
我正在尝试将此信息转换为简单的字符串,而不是从 0 到 2 手动执行。我正在寻找的最终结果类似于
我不知道在不使用许多 if-else 和 for 循环的情况下提取它们的任何好方法。
在python中有什么简单而好的方法吗?
python - 创建和查找每个值具有多个键的 2D 字典
我想我想制作一个每个值有多个键的二维字典。
我知道如何使用以下方法制作 2D 字典defaultdict
:
而且我知道使用常规字典可以使用多个键,例如:
但我想做一些类似 tuple-of-keys 的查找:
在字典的第一维中,每个值我需要约 25 个键。有没有办法做到这一点defaultdict
?
即使有办法用 dicts 来做,这是制作简单多维查找表的合理方法吗?
python - 将 `defaultdict` 公开为常规 `dict`
我正在使用defaultdict(set)
在非常大的数据结构中填充内部映射。填充后,整个结构(包括映射)将暴露给客户端代码。那时,我不希望任何人修改映射。
没有人故意这样做。但有时,客户端代码可能会意外引用不存在的元素。那时,一个普通的字典会产生KeyError
,但由于映射是defaultdict
,它只是在该键处创建一个新元素(一个空集)。这很难捕捉,因为一切都在悄无声息地发生。但我需要确保不会发生这种情况(语义实际上不会中断,但映射会增长到巨大的大小)。
我该怎么办?我可以看到这些选择:
在当前和未来的客户端代码中查找对映射执行字典查找的所有实例,并将其转换为
mapping.get(k, {})
。这太可怕了。defaultdict
在数据结构完全初始化后“冻结” ,将其转换为dict
. (我知道它并没有真正冻结,但我相信客户端代码实际上不会编写mapping[k] = v
。)不优雅,并且性能受到很大影响。包装
defaultdict
成一个dict
界面。有什么优雅的方法来做到这一点?恐怕性能损失可能很大(这种查找在紧密循环中大量使用)。子类
defaultdict
化并添加一个“关闭”所有defaultdict
功能的方法,让它的行为就好像它是一个常规的dict
. 它是上述 3 的变体,但我不确定它是否更快。如果不依赖实现细节,我不知道它是否可行。在数据结构中使用正则
dict
,重写那里的所有代码以首先检查元素是否在字典中,如果不在则添加。不好。
python - 优化分层字典中的python键搜索
我正在尝试优化我的代码,因为当我尝试加载庞大的字典时,它变得非常慢。我认为这是因为它在字典中搜索一个键。我一直在阅读有关 python的内容defaultdict
,我认为这可能是一个很好的改进,但我没有在这里实现它。如您所见,这是一个分层字典结构。任何提示将不胜感激。
基因和蛋白质的定义是:
python - Slow defaultdict and mongoDB import from tab-delimited file. Can anyone spot my bottleneck?
So I'm trying to import about 80 million page views from a log file. I'm trying to put them in the database as sessions, i.e. groups of page views separated with 20 minutes in between.
So eventually, in my user database I would like each user to have a list of dictionary objects like so:
Should be fairly simple. So I wrote this script:
I'm getting about 0.002 seconds per line = 44 hours for an 80 million page view file.
This is with a 2TB 7200rpm seagate HDD, 32 GB of RAM and 3.4Ghz dualcore i3 processor.
Does this time sound reasonable or am I making some horrendous mistakes?
EDIT: We're looking at about 90,000+ users, i.e. keys in the defaultdict
EDIT2: Here's the cProfile output on a much smaller 106mb file. I commented out the actual mongoDB saves for testing purposes: http://pastebin.com/4XGtvYWD
EDIT3: Here's a barchart analysis of the cProfile: http://i.imgur.com/K6pu6xx.png
python-2.7 - 从 defaultdict 对象访问值
我有一个默认字典,每个键有多个值。我想计算每个键的平均值。我不知道如何访问与每个键关联的值。任何人都可以帮忙吗?
python - 将dict内容分配给自变量
如何将 defaultdict 拆分为独立的列表,其中键作为列表名称,值作为列表元素。
例如:
如何得到:
python - 如何根据defaultdict中的键累积值
如果我有一个 defaultdict(list)
......我如何将其转换为类似的 defaultdict(list) 其值是具有相同键的第一个 dict 的值的累积,但从不大于 1
到目前为止我只有以下代码,它不太正确:-(
python - 通过相同的键加入大字典
我有大约 10 个包含 python 字典的大文件,如下所示:
基本上它们都是字典的字典。每个文件大小约为 1 GB(以上只是数据示例)。无论如何,我想做的就是将这 10 部字典加入到一起:
我在小文件上尝试了以下代码,它工作正常:
但是,如果我在我的 1 GB 文件上尝试这样做,我会通过将 d1 和 d2 以及最终字典保存在内存中来快速耗尽内存。
我有几个想法:
- 有没有一种方法可以让我从分段字典中加载键,比较它们,如果在多个字典中找到相同的键,只需组合值?
与其将字典合并到一个巨大的文件中(这将来可能会让我记忆犹新),如何在合并数据后创建多个包含一个键的所有值的单独文件?例如,对于上述数据,我将只有:
/li>
作为生物学家,我没有太多的编程经验(您可能已经猜到上述数据代表了生物信息学问题),因此非常感谢任何帮助!
python - python collections.defaultdict,列表长度为 2
我有一种情况,一个键将有两个值,这些值将在程序期间更新。更具体地,从一个空字典 d = {} 开始,我想做这样的事情:
d[a][0] += 1
或者d[a][1] += 1
其中a是一个浮点类型,在程序运行时也可以找到它。我可以做一些事情d = defaultdict(list([0,0]))
(这会产生错误)吗?我希望字典中的默认值是两个元素的列表。我该怎么做呢?