填写我的字典:mydict = [{"red":6}, {"blue":5}, {"red":12}]
这是我到目前为止所做的:
for key, value in mydict() :
if key == mydict.keys():
key[value] += value
else:
print (key, value)
我认为我没有把它弄得很好(被卡住几个小时),但我希望输出看起来像这样:
blue 5
red 18
或
red 18
blue 5
答案 0 :(得分:1)
你不能拥有相同键的字典.... 定义键是唯一的! 和密钥的最后一个分配,覆盖前一个
答案 1 :(得分:1)
我不推荐这个,因为它会导致设计混乱:
class MyDict(dict):
def __setitem__(self, key, value):
if key in self:
super().__setitem__(key, self[key] + value)
else:
super().__setitem__(key, value)
>>> d = MyDict({'red': 6, 'blue': 5})
>>> d['red'] = 12
>>> d
{'red': 18, 'blue': 5}
>>> d['blue']
5
>>> d['red']
18
>>> d['red'] = 8
>>> d
{'red': 26, 'blue': 5}
编辑:我看到你改变了初始对象......
>>> mydict = [{"red":6}, {"blue":5}, {"red":12}]
>>> sum(d.get('red', 0) for d in mydict)
18