重复时将字典值一起添加

时间:2015-11-03 22:37:36

标签: python csv dictionary io

我认为我走在正确的轨道上,但在这里出了点问题:

import csv
from itertools import islice

merged = {}

with open('test.csv') as csvfile:
    dictReader = csv.DictReader(csvfile)
    dictReader.fieldnames = "Part", "Qty"
    headlessDict = islice(dictReader, 2, None)
    for row in headlessDict:
        print(row['Part'].split(',')[0], row['Qty'])
    # for d in headlessDict:
    #     for k, v in d.items():
    #         if k not in merged:
    #             merged[k] = []
    #         merged[k].append(v)

我正在打开一个csv文件,然后为它们分配新的标题(part& qty)。然后我使用islice模块跳过前两行,因为我不需要它们,最后迭代并打印看起来像这样的结果(在第一列中删除了一些额外的细节后) :

A434343 19
B983943 22
DK8383E39 37
...

我想要做的就是说,“嘿,如果结果集中有重复(即A434343可能有两个或更多,但列出的数量不同)我最终想要数量和将它们添加到一起并使用清理列表创建一个新字典。

我现在被困住,可以使用一些帮助。请高手指教哦!

1 个答案:

答案 0 :(得分:0)

您似乎很好地追加了这些价值观。你能简单地添加它们吗?注释掉的代码可能如下所示:

        for k, v in d.items():
            if k not in merged:
                merged[k] = 0
            merged[k] += int(v)