zlr*_*zlr 0 python dictionary data-structures
我有这样一个文件:
A X V1
A Y V2
B X V3
B Y V4
Run Code Online (Sandbox Code Playgroud)
假设第一列是模型类型,第二列是版本号,第三列是相关的值.
我想回答这个问题:"模型A,版本X的价值是什么?" 适用于所有值和所有版本.
我想使用dict,但我只知道每个键有一个值的dicts.这里需要两个键,例如:
d[model][version] = value
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
你可以嵌套词典:
d['A'] = {}
d['A']['X'] = 'V1'
Run Code Online (Sandbox Code Playgroud)
或者您可以使用元组键代替:
d[('A', 'X')] = 'V1'
Run Code Online (Sandbox Code Playgroud)
嵌套可以更容易地列出给定模型的所有已知版本:
versions_for_model = d['A'].keys()
Run Code Online (Sandbox Code Playgroud)
使用collections.defaultdict()
以下命令可以简化创建嵌套字典设置:
d = defaultdict(dict)
d['A']['X'] = 'V1'
Run Code Online (Sandbox Code Playgroud)
这里尝试访问d['A']
自动创建一个新的字典值.