2023-04-20 TIL

0v0baek·2023년 4월 20일
1

TIL

목록 보기
34/92

[programmers] 숫자 문자열과 영단어

내 답안

def solution(strings):
    num_dict = {
        'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9'
    }
    key_list = []
    for key in num_dict.keys():
        find = strings.find(key)
        if not find == -1 :
            key_list.append(key)
    for key in key_list:
        strings = strings.replace(key, num_dict[key])
    return int(strings)

먼저 딕셔너리로 변환 할 대상을 지정해준다.

그런 뒤, 딕셔너리의 key값을 for문 돌려서 받은 문자열 내에서 찾아준다.(find)
존재하는 값은 key_list라는 빈 리스트 안에 append해서 추가한다.

마지막으로, 추려진 keyreplace를 통해 변경해준다!

수정 한 코드

def solution(strings):
    num_dict = {
        'zero' : '0', 'one' : '1', 'two' : '2', 'three' : '3', 'four' : '4', 'five' : '5', 'six' : '6', 'seven' : '7', 'eight' : '8', 'nine' : '9'
    }
    for key in key_list:
        strings = strings.replace(key, num_dict[key])
    return int(strings)

key값을 굳이 추려내지 않아도, 전체를 for문으로 돌리면서 replace 해주면 된다!!

profile
개발 공부 하는 비전공자 새내기. 꾸준히 합시다!

0개의 댓글