字典生成和Python中的数据附加

时间:2014-02-05 16:34:35

标签: python python-2.7

目前我的数据看起来像这样(编辑:这是一个例子集,每次运行脚本时这个数据都会改变)

['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)

变异列会非常频繁地变化,因此每次都需要生成一个新的dict,并且每个键/变异都需要附加不同的数字条目。

任何关于如何做到这一点的指导,或者如何学习如何做到这一点都将受到赞赏。

对于上下文,我将运行类似下面的内容,只是为了评估相似之处和不同之处。

表示r.keys()中的k:

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"

我对python /编程和单独学习非常陌生,所以如果我的问题措辞严厉/不明白道歉。如果可能的话,我可以要求解释解决方案/建议,以帮助学习过程。

1 个答案:

答案 0 :(得分: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)` ?