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

Python中的字典生成和数据追加,python,python-2.7,Python,Python 2.7,目前我有如下数据(编辑:这是一个exmaple集合,每次运行脚本时,此数据都会更改) 我想做的是使用包含突变数据的列(例如“G1R”)作为键,自动生成字典,然后在每次发生时将数字数据附加到该列 所以基本上是一个自动化版本的 r = dict(); r[ 'G1R' ] = [] r[ 'G1R' ].append(2.56) r[ 'G1R' ].append(15.78) “变异”列将非常频繁地更改,因此每次都需要生成一个新的dict,并且需要为每个键/变异添加不同的数字条目 任何关于如何

目前我有如下数据(编辑:这是一个exmaple集合,每次运行脚本时,此数据都会更改)

我想做的是使用包含突变数据的列(例如“G1R”)作为键,自动生成字典,然后在每次发生时将数字数据附加到该列

所以基本上是一个自动化版本的

r = dict();

r[ 'G1R' ] = []
r[ 'G1R' ].append(2.56)
r[ 'G1R' ].append(15.78)
“变异”列将非常频繁地更改,因此每次都需要生成一个新的dict,并且需要为每个键/变异添加不同的数字条目

任何关于如何做到这一点或如何着手学习做到这一点的指导都将不胜感激

在上下文中,我将运行下面的内容,只是为了评估相似性和差异

对于r.keys()中的k:

printk
总和=0
计数=0
对于r[k]中的a:
总和+=a
计数+=1
打印
平均数=总和/计数
通过=0
失败=0
对于r[k]中的a:
如果(平均值>a+2或平均值95):
打印“通过”
其他:
打印“失败”

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

这是
集合的完美案例。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)` ?

这些列表是否在任何类型的列表/字典中?这只是从多个.csv文件中解析和操作的数据,使用标准的python 2.7 csv读取器模块,您能解释一下吗?此外,这是否解释了每次运行脚本时初始数据都会发生变化的事实?@user3234810--defaultdict是一个非常有名且有文档记录的字典子类。在这种情况下,当找不到键(
k
)时,defaultdict调用
list
(返回一个新列表),新列表被添加到与键
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"
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)` ?