存储满足变量要求的值并查找也符合该要求的下一个值

时间:2016-09-01 17:26:35

标签: python

我正在尝试编写一个迭代列表的代码,如果i%10等于1,那么我将i存储在一个变量中。然后,我希望我的代码继续遍历列表,如果另一个i值满足与添加到计数相同的要求。

这就是我现在所拥有的,但它只是保存一个i值而不是添加一个计数。这是因为我想成为下一个我的价值只是符合我要求的第一个i值。

count 1_1 = 0
for i in B:
    if some_reqirement:
        if some_other_reqirement:
            if (old == 1) and (i % 10 == 1): 
                count1_1 += 1
            old = i % 10 

有谁知道如何解决这个问题?

编辑:

这是带有要求的代码,我已经测试了其余的代码,并且它的工作方式也是如此。

A是使用值1替换某些值的范围,b只是一个范围。

count1_1 = 0    
for i in B:
    if B[i] % 10 == 1 and B[i + 2] % 10 == 3:
        if A[i] * A[i + 2] == 1:
            if (old == 1) and (i % 10 == 1): 
                count1_1 += 1
            old = i % 10 

2 个答案:

答案 0 :(得分:1)

您过早保存旧值

    old = i % 10
    if (old == 1) and (i % 10 == 1): 
        count1_1 += 1 

应该是

        if (old == 1) and (i % 10 == 1): 
            count1_1 += 1 
        old = i % 10

oldi % 10相同:不是您想要的(因为if的两个表达式都测试相同的内容)

答案 1 :(得分:0)

我仍然认为old本质上是一个布尔标志,所以让它成为一个(称为previous_1),但这一次,我们不是只触发一次真实的,而是一次。将根据通过两个要求的每个i更改它的值:

count1_1 = 0

previous_1 = False

for i in B:
    if B[i] % 10 == 1 and B[i + 2] % 10 == 3:
        if some_other_reqirement:
            current_1 = i % 10 == 1
            if current_1 and previous_1:
                    count1_1 += 1
            previous_1 = current_1