字典理解在嵌套字典中添加两个值

时间:2018-01-03 04:07:42

标签: python dictionary

想知道是否可以在Python中使用字典理解来将两个值一起添加到嵌套字典中。见下面的例子:

bal = {
    u'ARK': {'locked': u'0.00000000', 'free': u'1.10654000'},
    u'ARN': {'locked': u'0.00000000', 'free': u'0.33900000'},
}

我想添加'锁定'和'免费'键,并将结果作为顶级键的值('ARK','ARN'等)返回

comb = {k: v[v + v] for k, v in bal.items() if v}

但是我错过了一些东西而不确定它是什么......感谢你的帮助和建议!

1 个答案:

答案 0 :(得分:1)

我假设每个值都是带有两个键的字典:free和locked:

In [69]: {k: float(v['free']) + float(v['locked']) for k, v in bal.items()}
Out[69]: {'ARK': 1.10654, 'ARN': 0.339}

如果您的值是字典,但值可能会有所不同,则创建一个将所有字符串转换为float的函数更简单,然后取总和:

def sum_of_str(str_list):
    return sum(float(x) for x in str_list)

In [72]: {k: sum_of_str(v.values()) for k, v in bal.items()}
Out[72]: {'ARK': 1.10654, 'ARN': 0.339}
相关问题