首页 > 解决方案 > 我想根据另一个列表的条件添加第二个列表的值

问题描述

我有两个清单:

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我需要比较列表的第 0 个索引中的值,a[i]并将其与位于 中的列表的第 0 个索引进行比较a[i+1]。如果它们相同,那么我需要在列表中添加相应的值,bb[i]and 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 位不匹配,所以不需要对 list 进行任何操作b,即我没有将元素添加到b[2]一起b[3]

我该如何解决这个问题?

标签: pythonnumpy

解决方案


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))

推荐阅读