【发布时间】:2015-04-08 17:28:38
【问题描述】:
我有一个动态增长的数组列表,我想将类似的值添加在一起。这是一个例子:
{"something" : [{"one":"200"}, {"three":"400"}, {"one":"100"}, {"two":"800"} ... ]}
我希望能够将列表中的字典加在一起。因此,在这种情况下,对于关键“某物”,结果将是:
["one":400, "three": 400, "two": 800]
或类似的东西。我对 Python 的收集计数器很熟悉,但是由于“某物”列表包含字典,所以它不起作用(除非我遗漏了某些东西)。字典也是动态创建的,所以我无法在没有字典的情况下构建列表。例如:
Counter({'b':3, 'c':4, 'd':5, 'b':2})
正常工作,但只要我尝试添加一个元素,之前的值就会被覆盖。我注意到其他问题,例如:
Is there any pythonic way to combine two dicts (adding values for keys that appear in both)?
Python count of items in a dictionary of lists
但同样,列表中的对象是字典。
【问题讨论】:
-
你的结构有点混乱;您有一个外部字典,其值是字典列表,每个字典只有一个键?我们需要担心外部字典中有很多实际条目吗?或者我们只是在
"something"键的内部列表中添加字典?一个更完整的预期输入和输出示例会很有帮助。 -
@aruisdante 很抱歉造成混乱。结构非常令人沮丧,但除了修改它之外,我无法控制它。回答您的问题: 1) 是的,每个只有一把钥匙。 2)可能还有其他字典,例如史蒂夫杰索普的回答说明。
标签: python list python-2.7 dictionary collections