我以前也贴过类似的问题,但是,条件有点变化,所以我想重新措辞。
我有以下dict结构:
[{
"id": "id01",
"system":
{
"0": "initial question \n Choice A \n Choice B",
"1": {"0": "Answer Choice A\n Second Choice C \n Second Choice D",
"1":"Final Answer Choice AC",
"2":"Final Answer Choice AD"},
"2": {"0": "Answer Choice B\n Second Choice A \n Second Choice B",
"1": "Final Answer Choice BA",
"2":"Final Answer Choice BB"}
}
}]
这是一个类似于dictonary的树,用户可以通过控制台输入来迭代。这是我的代码:
while True:
qloop = input("Select an option: ", )
if qloop == "R":
break
else:
print(data[i]["system"][qloop]) #here I want to use the qloop input to stepwise iterate through the nested layers of my tree-like dict.
break
if qloop == "R":
continue
else:
break
所以,我在我的控制台上要求用户为一个项目(在这个例子中是“id01”)做出选择。假设用户在初始问题之后输入“1”,代码应该打印答案选择A,然后用户可以再次选择,直到到达决策树中的一条路径的末尾,比如dict。
任何想法,我如何才能实现这一点,resp。这将是一个很大的奖金,如果你也可以撤销你的选择逐步让说“R”的关键。
1条答案
按热度按时间cwdobuhd1#
代码中所需的事件链不是很清楚,但我认为您可以使用类似以下函数的东西
并可能使用它如下
[我假设代码片段中的 *
if qloop == "R": continue
else: break
* 部分嵌套在另一个循环中的条件块中,因为在无条件break
或continue
之后的循环中没有任何意义...]关于我们
注意,在
if...break
或if...continue
之后不需要使用else
;如果循环中break
之后没有任何内容,则可以使用if qloop != "R": break
。