我想在开头设置一个空字典ind_dict
,然后当我得到一对(key, val)
时。如果key
中已存在ind_dict
,我只会将val
(浮点类型)加起来,否则我会添加新的(key, val)
对。
答案 0 :(得分:1)
这是Any
的用例:
return types
现在:
match cases
defaultdict
调用默认工厂时不带参数来生成 当密钥不存在时的新值,仅在 getitem 中。 defaultdict与dict的比较等同于相同的项目。 所有剩余的论点都被视为与它们相同 传递给dict构造函数,包括关键字参数。
此处from collections import defaultdict
ind_dict = defaultdict(float)
for key, val in [('a', 1), ('b', 2), ('a', 3)]:
ind_dict[key] += val
为>>> ind_dict
defaultdict(float, {'a': 4.0, 'b': 2.0})
。致电defaultdict(default_factory[, ...]) --> dict with default factory
会为您提供default factory
。
所以你可以直接添加它而不需要任何float
语句。
答案 1 :(得分:0)
def addFloatToFloatDic(tup,dic):
if tup[0] in dic: # check if in dict, if so
dic[tup[0]] += tup[1] # add value
else: # else
dic[tup[0]] = tup[1] # use as initial value
ind_dic = {}
addFloatToFloatDic(("k",12.1),ind_dic)
print (ind_dic)
addFloatToFloatDic(("k",12.1),ind_dic)
print (ind_dic)
输出:
{'k': 12.1}
{'k': 24.2}