创建“集合字典”

新手上路,请多包涵

我需要将数据有效地存储在类似于“集合字典”的东西中,例如,有一个包含多个(唯一)值的字典与每个唯一键匹配。我的数据源将是一个(不是很好)结构化的 XML。

我的想法是:我将查看一些元素并找到关键。如果键不存在,则将其添加到字典中,如果已存在,则只需在相应的键中添加一个新值即可。

结果会是这样的:

 {
 'key1': {'1484', '1487', 1488', ...}
 'key2': {'1485', '1486', '1489', ...}
 'key3': {'1490', '1491', '1492', ...}
 ...
}

我需要随时添加新密钥。我需要将唯一值推送到每个集合中。我需要能够遍历整个字典。

我不确定这是否可行,但如果有人能把我推向正确的方向,我将非常感激。

原文由 Stanislav Pavlovič 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 404
2 个回答

我不打算对此进行基准测试,但根据我的经验,本地字典更快

store = {}
for key, value in yoursource:
    try:
        store[key].add(value)
    except KeyError:
        store[key] = {value}

原文由 Paul Panzer 发布,翻译遵循 CC BY-SA 4.0 许可协议

from collections import defaultdict
mydict = defaultdict(set)
mydict["key1"] |= {'1484', '1487', '1488'}

迭代就像普通的字典一样。

原文由 Ohjeah 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏