我有以下字典(简体版本,真实数据要大得多):
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,}
我想根据键名的一部分将其划分为更小的嵌套字典。在
预期产出为:
^{pr2}$背后的逻辑是:
^{3}$目前部分代码:
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变成一个元组,每次迭代只改变两个值。如何使它成为一个字典,以便以后可以创建另一个字典,并将此字典用作其中一个键的值?在
这是因为您正在设置字典并用元组覆盖它:
现在举个例子:
^{pr2}$基本上,它获取其余的键(或者3个字符,如您所知,[14:None]或[14:]将获得字符串的其余部分),然后将其用作dict的新键
一种方法是
这给了
^{pr2}$一些注意事项:
(1)我们使用嵌套词典,而不是创建单独的命名词典,这不方便。在
(2)我们使用了setdefault,这是一种方便的方法,可以说“在字典中给我一个值,但是如果没有值,则将其添加到字典中并返回它。”。保存
if
。在(3)我们可以使用
.split(":")
而不是硬编码宽度,至少假设这是分隔符,这不是很健壮!在(4)使用
dict
(内置类型的名称)作为变量名是个坏主意。在相关问题 更多 >
编程相关推荐