我只想在复活中应用一个条件.我的数据 struct 如下
stages = {"stage_1": False, "stage_2":False, "stage_3":False,"state_4": False}
我想从中随机选取任何阶段,并将状态更改为True.但当真阶段的总数为3时,我想随机将真阶段更改为假阶段.但只有一次.然后它应该继续将阶段变为现实.当所有4个阶段都为真时.递归过程停止.
def process(stages):
all_stages = [stage for stage, status in stages.items() if status == False]
if len(all_stages) !=0:
print(all_stages)
select_ = random.choice(all_stages)
print("\tselected stage: ",select_)
stages[select_] = True
process(stages)
else:
print("Done")
print(stages)
process(stages)
这在不增加额外条件的情况下有效.我试过下面这个.但这是行不通的
def process(stages):
all_stages = [stage for stage, status in stages.items() if status == False]
if len(all_stages) !=0:
print(all_stages)
select_ = random.choice(all_stages)
print("\tselected stage: ",select_)
stages[select_] = True
if len(all_stages) == 1:
select_ = random.choice([stage for stage, status in stages.items() if status == True])
stages[select_] = False
process(stages)
else:
print("Done")
print(stages)
process(stages)