2014-02-05 53 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