将满足要求的值存储在变量中,并查找下一个也满足该要求的值

2024-09-29 01:19:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个遍历列表的代码,如果I%10等于1,那么我将i存储在一个变量中。然后,我希望我的代码在列表中不断迭代,如果另一个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 

Tags: and代码in编辑列表forifcount
2条回答

你把旧价值存得太快了

    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的两个表达式测试相同的东西)

我仍然认为old本质上是一个布尔标志,所以让我们将它设为一个(称为previous_1),但这次,我们将根据传递这两个需求的每个i更改它的值,而不是只触发一次True:

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

相关问题 更多 >