Python使用密钥的一部分从字典中进行选择

时间:2016-01-07 04:47:50

标签: python dictionary

我有一个数据集作为字典,其中密钥有两位有用的信息:AAA_B-B:值。 A和B重复不同的组合(4x4,16种组合)。

我正在尝试创建与不同集相关联的值的列表并绘制值,例如B-B1,B-B2等,所以我试图选择基于一部分的键。这就是我到目前为止所做的:

for fileKey in photon_means.keys():
    pm_30 = []
    pm_35 = []
    pm_40 = []
    pm_45 = []

    for k in sorted(photon_means[fileKey].keys()):
        pm_30.append(photon_means[fileKey[4:7]['3-0']][k])

返回TypeError,该字符串指示必须是整数。删除引号会让我“字符串索引超出范围”如果我更改列表追加到:

pm_30.append(photon_means[fileKey[4:7]]['3-0'])

我得到任何没有此密钥类型的值的KeyError(例如,3-5) 任何帮助将不胜感激!

编辑: 数据集是仪器校准。两个键表示仪器设置。它是一组结构的嵌套字典: {AAA_B-B:{Flow1:value},{flow2:value},{flow3:value}}

我有一些工作代码,可以在所有字典中绘制所有值,如下所示:

def calib(photon_means, conc_ppb):
    markers = {"600":"v", "650":"o", "700":"*", "750":"s"}
    colours = {"3-0":"r", "3-5":"m", "4-0":"g", "4-5":"b"}

    pyplt.clf()
    for fileKey in photon_means.keys():
        pm = []
        ppb = []
        for k in sorted(photon_means[fileKey].keys()):
            #pyplt.scatter([conc_ppb[fileKey][k]],[photon_means[fileKey][k]])
            pm.append(photon_means[fileKey][k])
            ppb.append(conc_ppb[fileKey][k])
        pyplt.plot(ppb,pm,label=fileKey, color=colours[fileKey[4:7]], marker=markers[fileKey[0:3]], ms=10.0)

我最终希望建立4个地块,按照设置B-B1,B-B2,B-B3和B-B4排序。

0 个答案:

没有答案