【发布时间】:2015-06-10 01:33:43
【问题描述】:
我有以下字典(短版,真实数据要大得多):
dict = {'C-STD-B&M-SUM:-1': 0, 'C-STD-B&M-SUM:-10': 4.520475, 'H-NSW-BAC-ART:-9': 0.33784000000000003, 'H-NSW-BAC-ART:0': 0, 'H-NSW-BAC-ENG:-59': 0.020309999999999998, 'H-NSW-BAC-ENG:-6': 0,}
我想根据键名的一部分将它分成更小的嵌套字典。
预期的输出是:
# fixed closing brackets
dict1 = {'C-STD-B&M-SUM: {'-1': 0, '-10': 4.520475}}
dict2 = {'H-NSW-BAC-ART: {'-9': 0.33784000000000003, '0': 0}}
dict3 = {'H-NSW-BAC-ENG: {'-59': 0.020309999999999998, '-6': 0}}
背后的逻辑是:
dict1: if the part of the key name is 'C-STD-B&M-SUM', add to dict1.
dict2: if the part of the key name is 'H-NSW-BAC-ART', add to dict2.
dict3: if the part of the key name is 'H-NSW-BAC-ENG', add to dict3.
到目前为止的部分代码:
def divide_dictionaries(dict):
c_std_bem_sum = {}
for k, v in dict.items():
if k[0:13] == 'C-STD-B&M-SUM':
c_std_bem_sum = k[14:17], v
我要做的是创建我需要的嵌套字典,然后我将创建字典并将嵌套字典添加到其中,但我不确定这是否是一种好方法。
当我运行上面的代码时,变量 c_std_bem_sum 变成了一个元组,每次迭代只有两个值发生变化。我怎样才能使它成为一个字典,以便我以后可以创建另一个字典,并将这个字典用作其中一个键的值?
【问题讨论】:
标签: python python-3.x dictionary