检查两个相同第一个值的元组列表

时间:2016-11-30 11:41:16

标签: python-2.7 list tuples

如何检查两个元组列表是否具有相同的第一个值?

list1=[(1,3),(3,2),(5,-5),(7,7)]
list2=[(1,-2),(2,2),(4,8),(5,6)]

我想添加list1[i][1] to list2[y][1] if list1[i][0] is = list2[y][0]

所以对于

的例子列表
(1,3) and (1,-2)
and
(5,-5) and (5,6)

它应该添加3 +( - 2)和-5 + 6

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试重新发明词典,为什么不使用它们呢?这将大大改善查找时间

dict1 = dict(list1)
dict2 = dict(list2)

result = {k1: v1 + dict2.get(k1, 0) for k1, v1 in dict1.iteritems()}

但是如果你真的想要使用列表:

for i, (i0, i1) in enumerate(list1):
    for y0, y1 in list2:
        if i0 == y0:
            list1[i][1] += y1