파이썬 리스트 관련 질문입니다.

조회수 407회
import random

#음식의 종류 
food_kind = ["한식", "중식", "양식", "일식", "아시안", "분식"]
food_kind_detail = ["food_kor", "food_chi", "food_west", "food_jpa", "food_asia", "food_sfod"]
food_recipe = ["볶음", "찜/탕/찌개", "튀김", "구이", "빵/밥/면"]
food_recipe_detail = ["food_stir", "food_soup", "food_fry", "food_rst", "food_meal"]

print("선택1: ", food_kind[a])
print("선택1: ", food_kind_detail[a])
print("선택2: ", food_recipe[b])
print("선택2: ", food_recipe_detail[b])

#음식의 종류
food_kind_detail = ["food_kor", "food_chi", "food_jpa", "food_west", "food_asia", "food_sfod"]
#한식
food_kor =["고등어구이", "삼겹살","김치찌개","삼계탕", "갈비찜", "소불고기덮밥","오징어덮밥", "제육볶음"]
#중식
food_chi = ["마라샹궈", "탕수육","유산슬", "자장면", "마파두부", "짬뽕", "울면","마라탕"]
#일식
food_jpa = ["초밥", "우동", "라멘", "돈카츠", "나베", "소바", "타코야끼", "오뎅"]
#양식
food_west = ["스테이크", "햄버거", "파스타", "피자", "샌드위치", "빵", "리조또", "치킨"]

#아시안
food_asia = ["카레", "쌀국수", "만두", "월남쌈", "분짜", "나시고랭", "팟타이", "짜조"]

#분식
food_sfod = ["만두", "김밥", "떡볶이", "라볶이", "주먹밥", "핫도그", "닭꼬치", "우동"]

#음식의 조리법
food_recipe_detail = ["food_stir", "food_soup", "food_fry", "food_rst", "food_meal"]

#볶음
food_stir = ["제육볶음", "마라샹궈", "마파두부", "나시고랭", "팟타이", "떡볶이", "라볶이", "유산슬"]
#찜/탕/찌개
food_soup = ["김치찌개", "삼계탕","소바" ,"나베", "만두", "갈비찜","짬뽕", "울면", "마라탕", "쌀국수", "우동", "라멘", "오뎅"]
#튀김
food_fry = ["탕수육", "돈카츠", "치킨", "짜조", "핫도그", "닭꼬치"]
#구이
food_rst = ["고등어구이", "삼겹살", "타코야끼", "스테이크", "월남쌈"]
#빵/밥/면
food_meal = ["오징어덮밥", "소불고기덮밥", "자장면", "초밥", "울면", "짬뽕", "우동", "라멘", "소바", "사시미", "햄버거", "파스타", "피자", "샌드위치",
             "빵", "리조또", "쌀국수", "쌀국수", "분짜", "나시고랭", "팟타이", "김밥", "주먹밥"]

menu = (set(food_kind_detail[a]) & set(food_recipe_detail))
print(menu)
print(food_kind_detail[a])

질문

예를 들어 food_kind_detail[a] 값이 food_kor, food_recipe_detail[b]값이 food_stir 이라고 한다면
food_korfood_stir이 각각 자신의 리스트로 변환이 될 줄 알았습니다.
food_kor 리스트와 food_stir 리스트를 세트로 변환하여 겹치는 부분을 도출하려고 했습니다.
하지만 코드를 실행해보니 food_korfood_stir 글자 중 겹치는 부분만 도출됩니다.
제가 원하는 것은 food_kind_detatil[a]로 나온 값을 리스트로서 사용하고 싶은데, 어떻게 해야하나요?

1 답변

  • food_kind_detail = ["food_kor", "food_chi", "food_jpa", "food_west", "food_asia", "food_sfod"]
    

    이 라인을 잘라서 food_sfod = 어쩌구 라인 뒤에 붙여넣고 따옴표를 전부 다 지워 보세요. 그러면 food_kind_detailfood_kor 등의 변수참조하게 될 겁니다.
    food_recipe_detail도 비슷하게 수정하신 다음, 이렇게 저렇게 고쳐 가면서 연구해 보셔요.


    근데 말이에요 사실 리얼 월드에서는 이런 자료들은 전형적으로 이런 구조로 설계하고 관리합니다. 혹시라도 지금이라도 데이터 구조를 변경할 수 있다면 아래 내용을 진지하게 참고해 보세요.

    # 이런 구성을 흔히 "객체배열"(array of objects)이라고 부릅니다.
    all_menu = [
        {'name': "삼겹살",   'kind': "kor", 'recipe': "roast"},
        {'name': "타코야끼", 'kind': "jpa", 'recipe': "roast"}
        # 이런 식으로 구성이 같은 메뉴 dict가 일렬로 쭉 이어지는 거죠.
    ]
    
    # 보시면 아시겠지만 직관적이면서도 충분히 체계적입니다.
    the_random_recipe = "roast"
    for menu in all_menu :
        if menu['kind'] is "kor" and menu['recipe'] is the_random_recipe :
            print(menu['name'])
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)