이름의 일부만 입력해도 해당하는 전화번호가 출력되게끔..

조회수 609회
//
dic={'홍길동':'010-4444-5555','김중앙':'010-9191-8181',"심청":'010-3232-5454'}


while True:
    user = input('이름>> ')

    namelist = list(dic.keys())
    numberlist = list(dic.values())
    if user in namelist:
        print(user, dic[user])
    else:
        if user == 'add':
            newname = input("이름은? ")
            newnum = input("전화번호는? ")
            dic[newname] = newnum
            print(newname, "전화번호가 추가되었습니다.")
        else:
            print("찾을수 없습니다.")
    continue

이런 코드를 짰습니다.

'홍길동'을 입력하면 딕셔너리의 벨류값이 나옵니다.

그런데 '홍길'만 검색해도 나오게 하는 방법은 무엇일까요?

1 답변

  • 반복문으로 namelist 요소들과 user 의 값을 비교해야 할 것 같아요.

    for i in namelist:
        if i.find(user) >= 0:
            print(numberlist.__getitem__(namelist.index(i)))
    

    이렇게 하면 한 글자라도 겹치면 찾을 수 있기는 한데 이름이 이제 한 글자라도 겹치게 되면 그에 맞는 처리가 또 필요하겠네요. 이 부분이 공부 많이 되실 듯 합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)