我是Python的新手,不习惯处理这类东西。
我写的代码:
search = str.lower(raw_input("What are you looking for?" + " " ))
knowledge = {"apple": 123, "test" : "cats"}
def return_the_input(search):
if search in knowledge:
print knowledge.get(search)
else:
print "No."
return_the_input(search)
所以我想要它做的就是问你想要什么(苹果),然后苹果会在unix中显示类似于Ls命令的东西。所以它看起来像这样:
“你在找什么?” - 输入苹果。然后,Apple会打印出其他值,例如
黄油 酱 零食
然后会问“下一步是什么?” - 输入黄油
我所有关于苹果酱的信息都会显示出来。
所以我在代码中将其设置为
knowledge = {"apple":{"butter": "info on butter here", "sauce": "info on sauce here"}, "cats":{et cetera}}
然后以某种方式采取行动以获得我想要的格式?我假设可能有某种For循环,或只是打印语句?
答案 0 :(得分:0)
你的想法会奏效。但是,如果一个项目属于两个类别怎么办?更好的解决方案是存储所有知识,然后将数据结构映射到知识。
knowledge = [
[("apple", "butter"), "made from cooked down apple sauce"],
[("peanut", "butter"), "made from crushed peanuts"],
]
def make_terms_from_knowledge(info):
search_terms = {}
for n, item in enumerate(info):
for i in item[0]:
search_terms.setdefault(i, []).append(n)
return search_terms
terms = make_terms_from_knowledge(knowledge)
print terms["butter"]
for entry in terms["butter"]:
print knowledge[entry][1]
只要知识发生变化,您就需要重新生成术语。这很简单,但应该让你思考其他路径并展示一些Python技巧。