Python双重同时“IF”条件

时间:2016-06-08 16:47:52

标签: python loops if-statement

是否可以循环遍历列表,并且对于列表中的每个项目,可以关闭两个条件IF路径?

例如,考虑下面的pseduocode:

for item in some_list:
    if some_variable == item:
        some_variable += 1
    else:
        some_variable -= 1
    andif some_other_varible == item:
        some_other_variable += 1
    else:
        some_other_variable -= 1

因此将每个项目与两个变量进行比较,并根据项目的值对每个变量执行操作。

2 个答案:

答案 0 :(得分:3)

如果我理解这个问题,你只需要:

for item in list:
    if some_variable == item:
        some_variable += 1
    else:
        some_variable -= 1

    # Start new IF block
    if some_other_varible == item:
        some_other_variable += 1
    else:
        some_other_variable -= 1

每次打开一组IF语句时,都会使用if完成。始终检查初始if旁边的条件。其他情况(例如elifelse)会根据该集合中的先前条件进行检查。每次使用if时,您都要打开要检查的新语句。上面的代码将检查第一组,然后移动到第二组。因此,无论第一组中的哪个条件为真,都将始终检查if some_other_varible == item

一个好的经验法则是考虑为每个逻辑决策打开一个if块。在这种情况下,第一个逻辑决策是'#34;根据其值"递增或递减some_variable第二个逻辑决策是"根据其值"递增或递减some_other_variable。因此,请使用自己的声明进行检查。

答案 1 :(得分:0)

IIUC,您希望andif位于上方else区块的if范围内。

for item in list:
    if some_variable == item:
        somevariable += 1
    else:
        somevariable -= 1

        # Indented block is within 'else' above.
        if some_other_varible == item:
            some_other_variable += 1
        else:
            some_other_variable -= 1