Python 有没有一种方法可以使用输入来爬升嵌套字典?
我开始收集游戏Subnautica中的所有食谱,最初使用列表,后来使用嵌套字典。在一位熟人的帮助下,我成功地获得了所有类别的完整列表,如下所示Python 有没有一种方法可以使用输入来爬升嵌套字典?,python,python-3.x,dictionary,input,nested,Python,Python 3.x,Dictionary,Input,Nested,我开始收集游戏Subnautica中的所有食谱,最初使用列表,后来使用嵌套字典。在一位熟人的帮助下,我成功地获得了所有类别的完整列表,如下所示 SRI #Subnautica Recipe Index fabricator mobile habitat vehicle scanner modification cyclops neptune Enter a choice > 您输入名称,然后进入下一个类别和下一个类别,直到显示配方: Enter a choice > tita
SRI #Subnautica Recipe Index
fabricator
mobile
habitat
vehicle
scanner
modification
cyclops
neptune
Enter a choice >
您输入名称,然后进入下一个类别和下一个类别,直到显示配方:
Enter a choice > titanium #user input
1 metal salvage
我的问题是,如果您碰巧键入了错误的类别/词典,我不知道如何使输入能够“爬升”备份类别/词典。这是允许下载的代码
def dive(dict_):
print()
for key in dict_:
print(key)
input_ = input("\nEnter a choice > ")
if input_ in dict_ and isinstance(dict_[input_], dict):
dive(dict_[input_])
else:
print(dict_[input_])
我一直在寻找解决办法,尽管我认为我的问题相当具体。谷歌帮不了我多少忙,除非我使用了错误或太不具体的搜索词。如果可以的话,请帮忙。这个想法有什么建议吗?(未经测试) 通过dict跟踪您的父路径:
def dive(dict_, parents=[]):
print()
for key in dict_:
print(key)
if parents:
print('back')
input_ = input("\nEnter a choice > ")
if input_ == 'back' and parents:
dive(parents[-1], parents[:-1])
elif input_ in dict_ and isinstance(dict_[input_], dict):
dive(dict_[input_], parents+[dict_])
else:
print(dict_[input_])
谢谢只要你第一次把它拼对了,它就行了。=)