如何在 Python 2.6 中分离和遍历元组列表中的数据?

How can I separate and traverse data in a list of tuples in Python 2.6?

背景

更新:这是我正在使用的 the horrendous list(请原谅列表的虚假标题)。长度和数据可能会发生变化,因为我正在从 ever-changing 数据库中检索此信息。

期望的结果

我将进一步解释我的目的,因为我不确定最好的方法。每个数字代表一个 ID ,如下所述。我需要创建一个 XML 文件,其中软件元素的目标 sub-elements 基于元组中匹配的 SoftwareID 和 TargetID。

例如:

SoftwareID    TargetID                 XML Representation
----------------------------------------------------------------------
    65          115    <-- This Software element (id=65) has only one Target
                           sub-element (id=115)
    138         218    <-- This Software element (id=138) will have multiple
    138         219        Target sub-elements (ids=218, 219, 220)
    138         220 

尝试

我已经按照 here 的方式对序列进行解包,但是对于这个实现来说列表太长了。我收到一个 错误 ,上面写着 太多值无法解包
我现在看到这实际上是一个 元组列表 而不是一个元组,所以这无论如何都行不通。

我已经尝试了 this 实现,但得到一个 错误 元组 object 没有属性'split'.

至于我的其余实现,我无法分离这个愚蠢的列表。

问题

不清楚实际问题是什么...但这也许有助于解决问题

data = {}
for lhs,rhs in my_list_of_tuples:

    try:
        data[lhs].append(rhs)
    except KeyError:
        data[lhs] = [rhs]

print data.items()[:5]

为了解释得更简单一点,让我们换个角度看一下

my_list_of_tuples = [(1,2),(3,5),(7,8),(7,9)]
for item in my_list_of_tuples:
    #on first loop item=(1,2) ; 2nd loop item=(3,5); 3rd loop item=(7,8)
    left_number = item[0] 
    right_number = item[1]
    #these 2 lines can be simplified to
    left_number,right_number = item

    #now if left number is already in the data dictionary we will append the new right number to its list
    try:
        data[left_number].append(right_number)
    except KeyError: #: if the left_number is not already in our data dictionary
        data[left_number] = [right_number] #: create a new list that contains only the right number

#now that we are done we have data that maps left numbers to right numbers
print data
#{1:[2],3:[5],7:[8,9]}