Python 根据条件将值追加到空列表

Python 根据条件将值追加到空列表,python,Python,我有一个有很多列的表。我只对两个专栏感兴趣。让我们把它们称为A和B。我想创建一个空列,比如C=[],并根据一些条件向其追加值 A B 1 10 0 11 0 12 1 09 0 14 0 13 1 12 让我们以上表为例如果A==1列中的值,则将A==1的B值附加到C列(空列表),直到A列中出现下一个A==1。对于A列中的下一个值1,请执行上述操作 所以我希望我的C列看起来像这样: A B C 1 10 10 0 11 10 0

我有一个有很多列的表。我只对两个专栏感兴趣。让我们把它们称为A和B。我想创建一个空列,比如C=[],并根据一些条件向其追加值

A   B   
1   10
0   11
0   12
1   09
0   14
0   13
1   12
让我们以上表为例如果A==1列中的值,则将A==1的B值附加到C列(空列表),直到A列中出现下一个A==1。对于A列中的下一个值1,请执行上述操作

所以我希望我的C列看起来像这样:

A   B   C 
1   10  10
0   11  10
0   12  10
1   09  09
0   14  09
0   13  09
1   12  12
如您所见,对于第一个A==1,C的值为B,其中A==1,直到下一个A==1出现。

我试过这样的方法,但不起作用:

for i in A:
    if i == 1:
        C.append(B[A==i])
但这将遍历我的整个列A并附加许多列表

我该怎么做呢

A = [1,0,0,1,0,0,1]
B = [10,11,12,9,14,13,12]

C = []
temp = B[0]   # Initialize a temporary variable to the first item in B

for i in range(len(B)):
    if A[i] == 1:
        temp = B[i]  # Only update temp if 1 was in the A column
    C.append(temp)

>>> C
[10, 10, 10, 9, 9, 9, 12]
遍历
for
循环的几个迭代:

i=0
A[0]
1
temp
变成
B[0]
10

i=1
A[1]
0
temp
停留
B[0]
仍然是
10

i=2
A[2]
0
temp
停留
B[0]
仍然是
10

i=3
A[3]
1
temp
变成
B[3]
9


... etc

如果
A
在第一行以
0
开头,在
C
中会发生什么情况?@Cyber我的A列在第一行有值1,然后在最后一行有很多值1,请您进一步说明?因此首先
i
取值0,然后
A[0]
为1。因此
temp
变为10。然后循环是否再次转到
if
语句?如果找到
1
,则
if[i]
语句将为
True
,如果找到
0
,则为
False
。请参阅我的编辑,其中介绍了如何进行几次迭代。因此,
a[i]
第一次取值1,并在循环结束前保持不变?
a[i]
在循环的每次迭代中都会更新,这就是检查每行a是0还是1的方式。但是是的,在循环的1次迭代中,A[i]没有改变。不,请注意if语句中有
temp=B[i]
。如果[i]为0,则该行不会执行,它将跳过更改temp的值。