添加或求和列表的值,直到条件不再有效,并在条件有效时创建一个新元素 Python

Add or sum a value to list till condition is not valid anymore and create a new element when condition is valid Python

我有一个问题,我得到了以下代码:

import numpy as np
a= [1,2,3,0,0,6,7,8,0,0,9,10,0,0]
a = np.array(a)
b=[]
c =[]

for i in a: 
    if i > 0.1:
        b.append (0.04)
    else: 
        c.append (0.04)

当我运行这个时,我得到

b = [0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04]
c = [0.04, 0.04, 0.04, 0.04, 0.04, 0.04]

但我真正想要的是

b = [0.12, 0.12, 0.08]
c = [0.08, 0.08, 0.08]

所以在b中0.04的值需要累加直到a<0.1然后需要创建一个新元素直到a>0.1。这需要重复整个 a 达到。 c.

也一样

有人可以帮我吗

您每次都在 b 和 c 数组中追加。您需要向该索引添加 0.04,直到满足您的条件。

import numpy as np
a= [1,2,3,0,0,6,7,8,0,0,9,10,0,0]
a = np.array(a)
b=[]
c =[]
value1 = 0
value2 = 0
index = 0;
for i in a: 
    if i > 0.1:
        value1 += 0.04
        if (value2>0):
            c.append(value2)
            value2=0
    else:
        value2 += 0.04
        if (value1 > 0):
            b.append(value1)
            value1=0
    if value1 > 0 and index==(len(a) -1):
        b.append(value1)
    if value2 > 0 and index == (len(a) - 1):
        c.append(value2)
    
    index+=1
    
print(b)
print(c)