내 구조는 YAML 파일에서이 같은 것입니다이 DICT 구조를 반복합니다 :파이썬 방법은
nutrition:
fruits:
apple:
banana:
pear:
veggies:
spinach:
zucchini:
squash:
meats:
chicken:
fish:
ham:
내가 (yaml.load 이것을에서로드) 확인하지만 때문에의 가능성이없는
잎 요소의 끝에있는 콜론 (필자는 거기에있을 필요는 없다), 전체 구조는 3 단계 사전이다. 더 효율적으로 만들려면 YML을 변경할 수 있습니다.
이제 구조체를 신속하게 반복하고, 내가 찾은 잎 수준 요소 (예 : '시금치')를 기반으로 '조리법'이라고하는 또 다른 간단한 사전을 찾고 싶습니다. 문자열 '시금치'하위 키 키. 이 조회 사전에는 '시금치 주스'또는 '시금치 파이'또는 '닭 시금치'라는 키가있을 수 있습니다.
나는 이것을 할 수있는 방법을 찾았지만 확실한 비유적인 방법이라고 확신하지 못했습니다. 다음은 내가 가지고있는 것입니다.
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
더 효율적이고 파이썬적인 조언이나 조언이 있으십니까?
@alfasin 첫 번째 줄에 무슨 문제가 있습니까? – Barmar