在YAML文件中,我的结构是这样的:
nutrition:
fruits:
apple:
banana:
pear:
veggies:
spinach:
zucchini:
squash:
meats:
chicken:
fish:
ham:
我把这个装进去yaml.负载()
不确定,但可能是因为叶元素末尾的冒号(我不确定是否需要),整个结构是一个3级dict。如果需要,我可以更改YML以提高效率。你知道吗
现在,我想快速遍历这个结构,根据我找到的叶级元素(例如“spinach”),我想查找另一个简单的dict,称为“recipes”,它可以将字符串“spinach”作为其键的子字符串。这个查找字典可以有“菠菜汁”、“菠菜派”或“鸡肉菠菜”的键。你知道吗
我找到了一个方法,但不确定这是正确的Python方法。以下是我所拥有的:
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
有什么建议/建议让它更有效和/或更具吸引力吗?你知道吗
您可以使用
dict.items()
,这样就不需要将字典查找放在嵌套循环中。你知道吗食物不是正则表达式,只是字符串,所以使用
in
而不是re.search()
。你知道吗因为您没有使用来自
recipe
的value
,所以不需要.items()
如果你想把食物作为一个整体来搜索,你可以使用
re.search(r'\b' + food + r'\b', key)
或food in recipes.split(' ')
作为测试。你知道吗相关问题 更多 >
编程相关推荐