Python:如何在字典中解包元组

时间:2015-04-09 17:23:11

标签: python dictionary

我目前正在将数据作为元组存储到字典中,但我不知道如何从字典本身解包元组。我得到一个ValueError,说的太多值,以我尝试的方式解压缩。这是代码:

for row in csvReader:
    if row['de_description'] and row['nh_description']:
        if 'XT2R' in row['de_description']:
            id = (row['de_description'], row['nh_description']:
            if ('TCN' in row['de_description'] and '77880' in row['src_dp']:
                rounded_time = int(float(row['rr_polltime']))
                dataDict[id].append((rounded_time, row['rr_age']))
                timeSet.add(rounded_time)
    fileHandle.close()

    #unpacking tuple?
    for id, (valX,valY) in dataDict.iteritems():
        ageSet.add(valY)
    print "ageSet=", ageSet

我也意识到我的代码中存在大量冗余,但这不是我目前的问题。如果有人曾经从字典中解压缩元组,那么指向正确的方向就会很棒。

1 个答案:

答案 0 :(得分:0)

参考

dataDict[id].append((rounded_time, row['rr_age']))

您的dataDict似乎是列表字典,因为您将值(在本例中为元组)附加到dataDict[id]。 但是,dataDict.iteritems()会返回键值对iter个对象,它是字典键和列表。

尝试将列表解压缩到(valX, valY)会导致您遇到ValueError