python3에서 "try/catch"블록으로 O (1) 시간에 사전에 요소가 있는지 확인하고 싶습니다. 나는이 작업을 수행 할 때 나는 구문 오류가 왜 나는 확실하지 않다 : 편의상Python 3.6.3 KeyError
try a_dict[i]:
print(i)
except KeyError:
a_dict[i] = ... #some item
이의 내가 배열에 중복 검사하는 기능을 가지고 있고이를 사용하고이 기능을 가정 해 봅시다 논리 위에서 :
def hasDuplicate(a):
a_dict = dict()
for i in a:
# logic from above
try a_dict[i]:
print(i)
except KeyError:
a_dict[i] = True
# end of logic from above
return -1
try 문을 사용하여 구문 오류가 발생합니다.
O (N) 시간을 확인하기 때문에 in
을 사용하지 않으려합니다. 사전에 O (1) 시간을 확인하지 않는 한? 어떤 도움이나 의견이 구문은해야
글쎄, 나는 "try/except"라고 말했을 것이지만 잘 알려져 있지 않습니다. 도와 줘서 고마워! –
문제가 없습니다! 나는 try/except가 파이썬 개발자들에게 매우 잘 알려져 있다고 생각한다. 'muggles'에 관해 확실하지 않은! –
내 질문의 올바른 구현 때문에 답변으로 표시 해요,하지만 그것은 @ 이그나시오 바스케스 - 아브람 대답은 해시 테이블을 확인 어떤 상황에서 사용해야한다는 점에 유의해야합니다 –