根据条件将值附加到空列表

时间:2014-10-10 12:00:24

标签: 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 == 1出现在A列中。对于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并添加许多列表。

我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

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 = 0A[0]1temp变为B[0],即10
i = 1A[1]0temp仍为B[0]10 i = 2A[2]0temp仍为B[0]10 i = 3A[3]1temp变为B[3],即9 ......等等。