파이썬 문자열에 나오는 숫자만 나누는 방법을 알고 싶습니다.

조회수 1282회

파이썬으로 코딩을 하고 있는데

홍길동 1,200,000원, 임꺽정 3,000,000원, 장길산 6,000,000원 이라는 문자열에 나오는 금액만을

1/2로 나누어 홍길동 600,000원, 임꺽정 1,500,000원, 장길산 3,000,000원 으로 하거나

1/3로 나누어 홍길동 400,000원, 임꺽정 1,000,000원, 장길산 2,000,000원 으로 하는 방법을 잘 모르겠습니다.

즉, 나누는 비율을 자유자재로 바꿔가면서 문자열에 나오는 금액만을 나누는 방법(천단위 쉼표는 유지하 면서)에 대해 알고 싶습니다.

re 모듈을 사용하면 된다는 건 어렴풋이 알겠는데 잘 모르겠습니다.

1 답변

  • 아래 참고하세요.

    import re
    
    moneys = ['1,200,000', '3,000,000', '6,000,000']
    template = '홍길동 {0}원, 임꺽정 {1}원, 장길산 {2}원'
    print(template.format(*moneys))
    
    m = re.compile(r'홍길동 (\d{1,3}[,\d{3}]*)원, 임꺽정 (\d{1,3}[,\d{3}]*)원, 장길산 (\d{1,3}[,\d{3}]*)원')
    print(template.format(*['{:,}'.format(int(money.translate({ord(','): ''})) // 2) for money in m.search(s).groups()]))
    
    
    홍길동 1,200,000원, 임꺽정 3,000,000원, 장길산 6,000,000원
    홍길동 600,000원, 임꺽정 1,500,000원, 장길산 3,000,000원
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)