数値列と文字列


質問元:プログラマ

質問の概要

숫자열과 문자열
- 네오가 프로도에게 숫자의 일부를 문자열로 바꾼 카드를 건넨다.
- 프로도가 문자열로 표시된 부분을 원래 숫자로 다시 바꾸는 프로그램 작성

규칙) 
- 아이디의 길이는 3~ 15- 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 만 사용 가능 
-, 마침표(.)는 처음과 끝에 사용할 수 없으며, 연속으로 사용 불가
- 빈문자열이 되면 a로 채우고, 길이가 부족하면 바로 앞문자 반복
- 길이가 넘어가면 뒤의 문자열은 제외

입력)
s = "one4seveneight"

출력)
result = '1478'

コード#コード#

def solution(s):
    answer = s
    num_dic = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9}
    
    for key, value in num_dic.items():
        answer = answer.replace(key, str(value))
    
    return int(answer)
solution('one4seveneight')
1478

定義された変数値の決定

num_dic = {''zero':0, one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9}
num_dic.items()
dict_items([('zero', 0), ('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5), ('six', 6), ('seven', 7), ('eight', 8), ('nine', 9)])

range(len(nums)活用コード

def solution(s):
    nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']

    for i in range(len(nums)):
        s = s.replace(nums[i], str(i))

    return int(s)
solution('one4seveneight')
1478