has_key

menu = {"ham" : 1, "cucumber" : -12, "egg" : 100}

if menu.has_key("ham"):
    print "네, 찾는 것이 있네요"
else:
    print "그런 메뉴는 없습니다."

 

파이썬 3을 사용중이면 아래 에러 문구가 나오면 처리되지 않음

  AttributeError: 'dict' object has no attribute 'has_key' 

has_key는 파이썬에서 지양하는 함수로, 파이썬 2를 사용하는 분들도 사용하면 안된다.

  http://stackoverflow.com/questions/1323410/has-key-or-in

get / in

1. get

menu = {"ham" : 1, "cucumber" : -12, "egg" : 100}

if menu.get("ham"):
    print "네, 찾는 것이 있네요"
else:
    print "그런 메뉴는 없습니다."
2. in
menu = {"ham" : 1, "cucumber" : -12, "egg" : 100}

if "ham" in menu:
    print "네, 찾는 것이 있네요"
else:
    print "그런 메뉴는 없습니다."

get은 키에 해당하는 값을 넘겨주기 때문에 값이 있다면 True고 없다면 False(...일 것 같지만 실제로는 None을 리턴한다. None False가 아니긴 하지만.... 어차피 키 값 판별이니 True가 아니므로 없는 메뉴에 대해서는 else로 빠진다.) 가 된다.

 

참고

https://www.pymoon.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%97%90%EC%84%9C-%EB%94%95%EC%85%94%EB%84%88%EB%A6%AC-%ED%82%A4-%EA%B0%92-%EC%B2%B4%ED%81%AC%ED%95%98%EA%B8%B0

 


to Top