파이썬에서 문자를 시간형태로 변경하는 방법

조회수 716회

안녕하세요.

파이썬에서 외부 api를 사용하여 시간을 불러왔는데 "3m 32s", "1h 23m 6s" 이런식으로 표기가 됩니다. 이것을 "00:03:32", "01:23:06" 이런식으로 2자리씩 콜론으로 구분하게끔 변경하려면 어떻게해야 하나요?

split이나 슬라이싱으로 하기에도 애매하구 번거롭구해서.. 좋은 방법이 있는지 질문드립니다.!

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기
    >>> def hms2iso(s): 
        t = { e[-1]:int(e[:-1]) for e in s.split() }
        return "%02d:%02d:%02d"%( t.get('h', 0), t.get('m', 0), t.get('s', 0) )
    
    >>> for e in s:
        print(e, hms2iso(e))
    
    
    3m 32s 00:03:32
    1h 23m 6s 01:23:06
    
    >>> s = ["3m32s", "1h23m6s"]
    >>> def hms2iso(f):
        num = ''
        t = {}
        for c in f:
            if c.isalpha():
                t[c] = int(num)
                num = ''
                continue
            num += c
        return "%02d:%02d:%02d"%( t.get('h', 0), t.get('m', 0), t.get('s', 0) )
    
    >>> for f in s:
        print(f"{f} -> {hms2iso(f)}")
    
    
    3m32s -> 00:03:32
    1h23m6s -> 01:23:06
    
    • 아 질문에 제가 시간을 띄어썼네요.. "3m32s" 이런식인데.. 죄송합니다;; 붙어있는 경우에는 스플릿 구분자가 애매해지는데 어떻게 처리해야하나요? 정용환 2021.2.18 10:01

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

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

(ಠ_ಠ)
(ಠ‿ಠ)