回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试创建一个嵌套字典来保存元组中的总数。外键将是产品id。嵌套字典将按月份和该月份发生的崩溃总数进行键控</p>
<p>示例:元组中的值是:(产品id、日期、崩溃数)</p>
<pre><code>outages = [
('A','2018-01-01', 20),
('A','2018-01-01', 20),
('A','2018-01-01', 20),
('B','2018-01-15', 80),
('B','2018-01-19', 200),
('A','2018-02-08', 15),
('A','2018-02-09', 15),
('B','2018-02-15', 80),
('B','2018-02-15', 90),
('B','2018-02-20', 10),
('C','2018-02-25', 120),
('A','2018-03-01', 10),
('B','2018-04-01', 10),
('C','2018-03-01', 5)]
</code></pre>
<p>我的预期产出是:</p>
<pre><code>{'A': {1: 60, 2: 30, 3: 10}, 'B': {1: 280, 2: 180, 4: 10}, 'C': {2: 120, 3: 5}}
</code></pre>
<p>到目前为止,我掌握的情况如下:</p>
<pre><code>from datetime import datetime
#Create a class to implement missing method for when key is not in the dictionary
class NestedDict(dict):
def __missing__(self, key):
self[key] = NestedDict()
return self[key]
#Create Instance of NestedDict
nested_dic=NestedDict()
#Loop through outages and created outer and inner key
for x in outages:
nested_dic[x[0]][datetime.strptime(x[1], '%Y-%m-%d').month] = 0 #=>Need Help Here
</code></pre>
<p>我不知道从这里到哪里去得到想要的输出。我将这些值设置为0,因为执行:<code>+= x[2]</code>会产生错误。理想情况下,我希望遍历<code>outages</code>,并在扫描每个元组后更新字典,而不必多次迭代</p>