我想根据另一个列表的条件添加第二个列表的值

时间:2018-10-21 20:38:24

标签: python numpy

我有两个列表:

a = [[1, 0.5], [1, 0.5], [2, 1.0], [3, 1.0]]

b = [-0.5, -0.5, 0.0, 0.0]

现在,对于a[i]中的每个列表a,我需要比较列表a[i]的第0个索引中的值,并将其与的第0个索引进行比较。位于a[i+1]中的列表。如果它们相同,那么我需要在列表b中添加相应的值,即b[i]b[i+1]

例如, 在上面的列表中,我有a[0] = [1, 0.5]a[1] = [1, 0.5]。我们看到这两个列表中的第一个元素都是1。因为它们相同,所以在列表b中,我想将位于b[0]b[1]中的元素添加在一起,即-0.5-0.5

但是,a[2] = [2, 1.0]a[3] = [3, 1.0]。并且,由于这两个列表的第0位不匹配,因此无需对列表b执行任何操作,即,我不会将b[2]b[3]中的元素一起添加。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

a = [[1, 0.5], [1, 0.5], [2, 1.0], [3, 1.0]]
b = [-0.5, -0.5, 0.0, 0.0]

# through second to last element
for i in range(len(a) - 1):
    if a[i][0] == a[i+1][0]:
        print('for i=={}: {}'.format(i, b[i] + b[i+1]))
    else: # for complete output verification
        print('index "{}" missed'.format(i))