2015-11-03 78 views
0

我覺得我在正確的軌道上,但有錯誤的東西在這裏:複製時添加字典值一起

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文件,然後分配新的報頭(部分&數量)給他們。然後,我使用islice模塊跳過前兩行,因爲我不需要它們,最後迭代並打印看起來像這樣的結果(在用分割切斷第一列中的一些額外細節之後) :

A434343 19 
B983943 22 
DK8383E39 37 
... 

什麼我試圖再完成是說,「嘿,如果在結果集中的重複(即有可能是兩個或兩個以上的A434343但隨着上市量的不同),我最終要把這些數量加在一起,並創建一個新的字典與清理清單。

我現在卡住,可以使用一些幫助。請指教哦,高手!

+0

寫的僞代碼:如果key不在字典... ELSE ... – John3136

+0

我做到了,這就是我如何開始與註釋掉的代碼,但我被困。 =( – LuckyURE

回答

0

您似乎很好地追加了這些值。你能簡單地添加它們嗎?這注釋掉的代碼可以是這樣的:

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