【发布时间】:2018-03-17 08:16:26
【问题描述】:
我的结构在 YAML 文件中是这样的:
nutrition:
fruits:
apple:
banana:
pear:
veggies:
spinach:
zucchini:
squash:
meats:
chicken:
fish:
ham:
我用 yaml.load() 加载它
不确定,但可能是因为叶元素末尾的冒号(我不确定是否需要在那里),整个结构是一个 3 级字典。如果需要,我可以更改 YML 以提高效率。
现在,我想快速迭代结构,并根据我找到的叶级元素(例如'spinach'),我想查找另一个简单的字典,称为'recipes',它可以包含字符串'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
有什么建议/指针可以使其更高效和/或 Python 化?
【问题讨论】:
-
@alfasin 第一行有什么问题?
标签: python dictionary idioms