2015-01-17 5 views
0

저는 파이썬에서 초보자입니다. 다음 코드를 가지고 있고 프로덕션 환경에서 사용해야하는 접근법이 더 나은지 궁금합니다.어떤 접근 방식이 python3에서 더 낫습니까?

d = {} 
d['a'] = set([0,1,2,0]) 
d['b'] = set([1,2,1,2]) 

접근법 1 :

try: 
    print(d['c']) 
except: 
    print(set()) 

접근법 2 :

try: 
    ans = d['c'] 
except: 
    ans = set() 
print(ans) 

접근법 3

if 'c' in d.keys(): 
    print(d['c']) 
else: 
    print(set()) 

접근 4

if 'a' in d.keys(): 
    ans = d['c'] 
else: 
    ans = set() 
print(ans) 
+2

이런 종류의 일에'dict.get' (또는 이것들이 많이 있다면'defaultdict')이 있습니다. – georg

+2

[맨손으로 사용하지 마십시오.] (https://docs.python.org/2/howto/doanddont.html#except) –

+2

[codereview] (http : // codereview) .stackexchange.com) 질문; 여기서 해결할 문제는 없습니다. – DSM

답변

0

tryexcept 절은 다음과 같이 작동합니다. try 문 아래의 코드가 실행됩니다. try 절에서 예외가 발생하자마자 except 문으로 이동합니다. 발생하는 오류가 except 절이 실행되는 정의 된 예외에 해당하는 경우

이 당신이 원하는 것이 무엇인가 :

d = {} 
d['a'] = set([0,1,2,0]) 
d['b'] = set([1,2,1,2]) 

try: 
    print(d['c'])  #if this doesn't exist a KeyError is raised 
        #thus it immediately jumps to the except clause 
except KeyError: 
    print("No such key in the dictionary") 

을하지만 print(d['a']) 경우도 예외는 따라서 절을 제외하고는 건너 뜁니다 발생하지 않는다.

관련 문제