对字典python的求和操作

时间:2017-09-26 10:05:20

标签: python dictionary

我有这样的字典:

plt.plot_date([date[0], date[m]], 
              [value[0], value[m]], fmt='-')

如何将值字段中每个列表的第一个数字相加?简单来说就是数字

    dict_connected_hosts = {

        {'10.0.0.2': [[12564.0, 6844.0, 632711.0, 56589,0, 4856,0], <ryu.controller.controller.Datapath object at 0x7f2b2008a7d0>, '10.0.0.2', '10.0.0.1', 2, datetime.datetime(2017, 9, 26, 2, 24, 12, 301565)]}
        {'10.0.0.3': [[3193.0, 621482.0, 6412.0, 2146.0, 98542.0], <ryu.controller.controller.Datapath object at 0x7f2b2008a7d0>, '10.0.0.3', '10.0.0.1', 3, datetime.datetime(2017, 9, 26, 2, 24, 12, 302224)]
        {'10.0.0.7': [[4545.0, 51442.0, 325.0, 452.0, 3555.0], <ryu.controller.controller.Datapath object at 0x7f2b2008a7d0>, '10.0.0.7', '10.0.0.1', 3, datetime.datetime(2017, 9, 26, 2, 24, 12, 302250)]

 }

感谢

1 个答案:

答案 0 :(得分:0)

我调试了你的字典结构。 相关部分应为:

{
        '10.0.0.2': [[12564.0, 6844.0, 632711.0, 56589,0, 4856,0]],
        '10.0.0.3': [[3193.0, 621482.0, 6412.0, 2146.0, 98542.0]],
        '10.0.0.7': [[4545.0, 51442.0, 325.0, 452.0, 3555.0]]
}

注意:忽略values中的其他元素,因为它们与问题无关(并且它们有错误,我不关心调试)

因此,要获得first numbers in the first list of each value的总和,您可以list comprehension执行此操作:

#suppose `a` is the dictionary

print([val[0][0] for val in a.values()])
#[12564.0, 3193.0, 4545.0]

print(sum( [val[0][0] for val in a.values()] ))
#20302.0