2014-02-05 88 views
0
附加

目前,我有看起來像這樣的數據(編輯:這是一個〔實施例組,每次運行腳本這個數據會發生變化)字典生成和數據在Python

['G1R', '2.56'] 
['E219D', '11.56'] 
['L335D', '2.56'] 
['E248D', '90.28'] 
['E219D', '2.56'] 
['G1R', '15.78'] 
['L335D', '2.56'] 

我想要做什麼使用包含突變數據的列自動生成字典,例如'G1R',因爲它們是鍵,然後將數字數據附加到每次出現時的數字數據。

所以基本的

r = dict(); 

r[ 'G1R' ] = [] 
r[ 'G1R' ].append(2.56) 
r[ 'G1R' ].append(15.78) 

自動化版本突變列將非常頻繁地改變,因此需要產生一個新的字典,每次會有這需要附加的每個鍵/突變不同的數字條目。

任何指導如何做到這一點,或如何去學習做到這一點,將不勝感激。

對於上下文,我將運行類似於下面的內容,以評估相似性和差異性。

對於k在r.keys():

print k 

sum = 0 
count = 0 
for a in r[k]: 

    sum += a 
    count += 1 
    print a 

mean = sum/ count 

passed = 0 
failed = 0 

for a in r[k]: 
    if (mean > a + 2 or mean < a - 2): 
     failed += 1 
    else: 
     passed += 1 

print "mean %.2f \n" % (sum/ count) 

print "passed: %d, failed: %d" % (passed, failed) 

if (passed * 100/(passed + failed) > 95): 
    print "passed" 
else: 
    print "failed" 

我很新的蟒蛇/編程和學習獨唱,所以如果我的問題是嚴重的措辭/不清的歉意。如果可能的話,我可以要求解釋/建議來幫助學習過程。

+0

一個完美的情況下,在開始任何排序列表/字典的這些名單? – IanAuld

+0

這就是數據解析和操縱從多個.csv文件,使用標準的Python 2.7 csv閱讀器模塊 – user3234810

回答

2

這是collections.defaultdict

from collections import defaultdict 
initial_list = [ 
    ['G1R', '2.56'], 
    ['E219D', '11.56'], 
    ['L335D', '2.56'], 
    ['E248D', '90.28'], 
    ['E219D', '2.56'], 
    ['G1R', '15.78'], 
    ['L335D', '2.56'], 
] 
d = defaultdict(list) 
for k, v in initial_list: 
    d[k].append(v) # possibly `int(v)` ? 
+0

你能解釋這一點嗎?另外,這是否說明每次腳本運行時初始數據都會發生變化? – user3234810

+0

@ user3234810 - defaultdict是一個非常有名的記錄字典子類。在這種情況下,當找不到鍵('k')時,defaultdict調用'list'(它返回一個新列表),新列表被添加到與鍵'k'相關的字典中,並且新列表得到回報。如果找到鑰匙,它只是做正常的事情。 – mgilson

+0

酷!在這裏忍受一個新的東西。我怎樣才能每次自動輸入數據集? (對我來說,它看起來像使用這個我將不得不輸出每組結果) – user3234810