我正在努力实施一种数据结构,使建立问卷变得容易。我的意思是:
假设第一个问题是“你来自哪个国家?”你回答“美国”,因此,下一个问题是“你来自哪个州?”
如果你回答第一个问题,比如说“中国”,接下来它可能会问另一个问题。我需要实现什么样的数据结构才能这样做呢?
发布于 2020-03-25 18:48:39
我相信每一个节点上的任意自然数n个节点的树,每个节点代表一个问题,都是可行的。使用一个函数ask来获得答案,并决定下一个节点。对您来说,这是一个很长的代码过程,但是它已经足够好了。您可以通过列表等创建此树,也可以通过字典字典创建此树(在本例中,我将选择字典)。
示例:
tree = {"United States": {"Pizza": {}, "Taco": {}}, "China": {"Books": {}, "Movies", {}}},等等直到结束。词典的每一层代表着一个问题的答案。
发布于 2020-03-25 18:46:33
这只是一个字符串的列表。存储两个列表,然后压缩它们以获得每个问题的答案。
q = [ "Which country are you from?" ]
a = list()
for _q in q:
a.append(input(_q))
print(list(zip(q, a)))如果你回答第一个问题,比如说“中国”,它可能会问另一个问题。
这将成为一个树/图/网络,您可能会使用类似于networkx的方法,其中有一些包含字符串问题的“问题”节点,然后有带有可能答案标签的传出边,没有答案的循环返回或退出,以及所有其他答案的一些默认边缘。答案边的关系是两个问题节点之间的关系。
如果您想将它们存储在数据库中,Neo4j和OrientDB是很流行的选项。
https://stackoverflow.com/questions/60855230
复制相似问题