我的結構是這樣的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