目前我的数据看起来像这样(编辑:这是一个例子集,每次运行脚本时这个数据都会改变)
['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 /编程和单独学习非常陌生,所以如果我的问题措辞严厉/不明白道歉。如果可能的话,我可以要求解释解决方案/建议,以帮助学习过程。
答案 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)` ?