사전에서 키를 사용할 수 있는지 확인하는 것이 쉽지만 특정 값은 무엇입니까?사전 값에서 회원 자격을 확인하는 방법이 있습니까? 일단 확인되면 다른 일을 할 수 있습니까?
그래서 내가 여기있는 것은 키가 일관성을 위해서 문자열을 참조하는 목록 사전입니다. 그것은 조금 같을 것이다 :
menu = {'breakfast':['soft-boiled eggs', 'hash brown', 'Earl Grey'],
'lunch':['pasta', 'soup'],
'dinner':['chips', 'beef stew', 'veggies']}
지금 내가 뭘하려는 'chips'
내 메뉴에 그렇다면, 나는 'crusty bread'
로 교체하고 싶습니다, 말, 있는지 확인합니다. 내가 'chips' in menu['lunch']
또는 아침 식사를 위해 같은 것을 사용하려고 노력할 수있다라는 것을 알고있다. 그러나 내가 그것이 언제 복무하게되는지에 관해 모른다?
Extension
이의 우리가 음식이라는 클래스는 정의한 가정 해 봅시다 설명하기 어렵다 동안 :
여기class Food(object):
def __init__(self, meal):
self.meal = meal
self.ingredients = collections.defaultdict(set)
def __str__(self):
return "%s" %(self.meal)
, meal
에서는 아침 식사, 점심 또는 저녁 식사 중 하나를 참조합니다. 그리고 우리는 집합의 사전 인 ingredients
을 가지고 있습니다. 'potatoes'
은 재료이며 열쇠가 있으면 관련 접시가 나타납니다 : 해시 브라운, 칩. '특정 아침 식사에 사용할 수 무엇
breakfast defaultdict(<type 'set'>, {'potatoes': set(['chips', 'hash brown']), 'eggs': set(['omelette', 'hard-boiled', 'soft-boiled']), 'tea': set(['Assam', 'Earl Grey', 'English'])})
을 그래서이 기본적으로 : 내 기능에 print meal, menu[meal].ingredients
를 호출 할 때 이와 같이, I (이는 내가 넣어 한 모든이기 때문에 아침 식사 만입니다) 다음과 같은 결과를 얻을 수 재료 '.
이제 최악의 상황이 발생했다고 가정 해 보겠습니다. 지금 내가하고 싶은 것은 'potatoes'
을 'bread'
으로 바꾸고 그 아래에 값/유형 'roll', 'crusty', 'brown'
을 넣을 것입니다. 그 일에 대해 어떻게 생각 하나?
그리고 점심 시간으로 가기 위해, 우리는 'Assam'
차를 다 쓴다. Extension 이전의 질문과 마찬가지로, 내가 그것을 어떻게 제거 할 것인가? (처음에 그것이 존재하는지 확인한 후)? menu
에서
당신의 아침 식사 예 호기심 사전에서 키/값 쌍을 제거 할 수 있습니다 : 감자 칩 등에서 사용되며 계란은 오믈렛 등에서 사용되며 아삼, 얼 그레이 등에서는 차가 사용됩니다. 따라서 고객은 주문한 차 종류에 관계없이 동일한 차잎을 얻습니다. 이 운동은 Basil Fawlty Hospitality College의 숙제 인 것 같습니다 :-) –
"재미있는"태그가 붙은 이유는 무엇입니까? – kennytm
그리고 당신의 모델은 약간의 정규화가 필요합니다. 어떤 차종에서 차를 주문할 수 있으며 점심과 저녁 모두 많은 요리를 주문할 수 있습니다. 당신은 정말 치킨 파르 미 지아 나 또는 Vindaloo의 성분을 한번 이상 지정하고 싶지 않습니다. 어떻게이 모든 데이터를 디스크에 저장할 것입니까? 간물? 관계형 데이터베이스를 고려해 보셨습니까? –