是否可以循环遍历列表,并且对于列表中的每个项目,可以关闭两个条件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
因此将每个项目与两个变量进行比较,并根据项目的值对每个变量执行操作。
答案 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
旁边的条件。其他情况(例如elif
和else
)会根据该集合中的先前条件进行检查。每次使用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