【发布时间】:2020-04-28 23:58:53
【问题描述】:
我有两个向量(a、b)并想从这两个向量中创建第三个向量(c)。它们都应该具有相同的长度。如果向量a 中有一个零(0),则具有此索引的向量b 的值(其中a 为零)应与下一个值相加,直到向量a 中的值是十一 (11),然后将这些值的总和存储在向量 c 中。 c 的其余值应为零 (0)。
a=[0, 11, 0, 11, 0, 0, 0, 11]
b=[1.1, 1.1, 9, 9, 9, 6.6, 6.6, 9]
所以向量c 应该是这样的:
c=[0, 2.2, 0, 18, 0, 0, 0, 31.2]
我创建了下一个代码,它几乎适用于这种情况,除了最后一个值(它作为最后一个值15.6 的输出)。而且我还需要更高效的东西,那么向量a 可能会出现三个以上的零。
for w in range(0,len(a)):
if a[w]==0 and a[w+1]!=0:
c[w+1]=b[w]+b[w+1]
elif a[w]==0 and a[w+1]==0 and a[w+2]!=0:
c[w+2]=b[w]+b[w+1]+b[w+2]
elif a[w]==0 and a[w+1]==0 and a[w+2]==0:
c[w+3]=b[w]+b[w+1]+b[w+2]+b[w+3]
【问题讨论】:
标签: python loops vector indexing conditional-statements