inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

폰북 프로젝트(PhoneBook Project)

중복된 번호 예외처리를 위한 nested dict 탐색 속도 관련 질문

262

김정배

작성한 질문수 17

0

저는 Update, Delete 메뉴를 실행 시, 입력된 전화번호가 중복되는지 예외처리를 구현해봤습니다.

def find_duplicate_number(phonebook, new_number):
    is_duplicate = False
    for pid, address in phonebook.items():
        if int(address.get('Phone')) == new_number:
            is_duplicate = True
    return is_duplicate

그런데 dict 의 모든 value 를 선형탐색 하는 것이 비효율적인것 같아서 질문드립니다.

Nested dict 형태라서 어쩔 수 없는것인지, 혹은 다른 방법이 있을까요?

python

답변 1

0

좋은사람

안녕하세요.

좋은 질문입니다.

보통은 내부적으로 잘 구현되어 있는 counter 패키지를 활용합니다.(코딩테스트시에도)

중간정도에 딕셔너리의 키, 값을 체크하는 부분이 있습니다.

감사합니다.

https://www.geeksforgeeks.org/python-find-keys-with-duplicate-values-in-dictionary/

dict, zip

0

32

2

for, range 추가 방법

0

46

0

오타: 20-1 예시 코드에 c = 135가 아니고 a = 135이죠?

0

78

1

방법2, 방법3의 결과가 요구 출력결과와 다릅니다.

0

125

4

glob.glob문 오류

0

72

1

질문입니다.

0

66

1

기초적인 질문입니다.

0

57

1

딕셔너리 인트문제

0

57

0

아나콘다 설치 시 오류가 뜨면서 인스톨이 끝까지 안 되네요...

0

124

1

실행오류

0

65

2

주피터 노트북 새버전

0

135

2

with open

0

131

2

PowerShell Prompt에서 주피터노트북 기본 드라이버/폴더 위치변경 후 주피터노트북 실행

0

187

2

기초적인 질문입니다만

0

113

1

새로운 dict를 생성한 이유에 대해서 궁금합니다.

0

169

2

안녕하세요 전 버전이 상위버전인지 달라서

0

246

2

주피터 token

0

142

2

주피터 token

0

168

2

아나콘다를 D드라이브에 설치했는데

0

725

4

python 3 (ipykernel)이 뜨지 않음

0

204

1

안돼요ㅜㅜ in[]으로 뜨지도 않고 초록색으로 변하지도 않아요...

1

348

3

주피터를 크롬말고 엣지에서 그대로 써도 괜찮은가요?

0

261

2

오류

0

149

1

주피터 실행 불가 에러

0

416

2