创建“集合字典”

Sta*_*vič 7 python dictionary set

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

我的想法是:我将浏览许多元素并找到键。如果该键不存在,则将其添加到字典中;如果它已经存在,则只需在相应的键中添加一个新值。

结果将是这样的:

{
 'key1': {'1484', '1487', 1488', ...}
 'key2': {'1485', '1486', '1489', ...}
 'key3': {'1490', '1491', '1492', ...}
 ...
}
Run Code Online (Sandbox Code Playgroud)

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

我不确定这是否可行,但是如果有人可以向正确的方向推动我,我将不胜感激。

Pau*_*zer 7

我不会对此进行基准测试,但是根据我的经验,本机命令更快

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


Ohj*_*eah 5

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

迭代就像普通字典一样。

  • 这是行不通的,因为您正在尝试将一个集合作为成员添加到一个集合中。但是集合是不可哈希的。你可能想要类似`|=` 的东西。或者只是一次添加一个数字单词。 (2认同)