处理其他语言对
switch语句所做的一般方式是创建一个字典,其中包含针对每种情况的函数:
conds = { 0: lambda: condition_1, 1: lambda: condition_1 or condition_2, 2: lambda: condition_1 or condition_2 or condition_3}然后:
while conds[a](): # do stuff
通过使用lambda(如果条件特别复杂,则使用命名函数),可以在每次循环中评估适当的条件,而不是在定义字典时评估一次。
在这种简单的情况下,您
a有从0开始的连续整数值,则可以使用列表并节省一些键入时间。为了进一步简化,您可以根据上一个条件定义每个条件,因为您每次只是添加一个条件:
conds = [ lambda: condition_1, lambda: conds[0]() or condition_2, lambda: conds[1]() or condition_3]
或者,如Julien在评论中所建议:
conds = [ lambda: condition_1, lambda: condition_2, lambda: condition_3]while any(cond() for cond in conds[:a+1]): # do stuff



