我的结构是这样的YAML文件:Python的方式来过这个字典结构迭代
nutrition:
fruits:
apple:
banana:
pear:
veggies:
spinach:
zucchini:
squash:
meats:
chicken:
fish:
ham:
我与yaml.load加载此()
不知道,但可能因为在叶元素结尾的冒号(我不知道需要在那里),整个结构是3级字典。如果需要,我可以更改YML,以提高效率。现在,我想快速遍历结构,并基于我发现的叶级元素(例如'菠菜'),我想查找另一个简单的字典,称为'食谱',它可以有字符串'spinach'作为其密钥的子串。这个查找字典可以有说'菠菜汁'或'菠菜派'或'鸡菠菜'的钥匙。
我发现了一种方法来做到这一点,但不知道它是正确的pythonic方式。这里是我有:
for food_class in database['nutrition']:
for food in database['nutrition'][food_class]:
for key, value in recipes.items():
if re.search(food, key):
print key
任何意见/指针,使其更有效率和/或pythonic?
@alfasin第一行有什么问题? – Barmar