728x90
반응형
(문제)
문자열에서 원하는 숫자와 문자를 어떻게 뽑나요?
예시 3개)
# >>> decompose('What is 4/7 wallaby, 1/4 parakeet and 3/5 perch?')
# (['wallaby', 'parakeet', 'perch'], [Fraction(4, 7), Fraction(1, 4), Fraction(3, 5)])
# >>> decompose('What is -1/3 ALPACA and -7/9 PARTRIDGE?')
# (['ALPACA', 'PARTRIDGE'], [Fraction(-1, 3), Fraction(-7, 9)])
# >>> decompose('What is 3/7 Manatee, 3/7 cheetah and -4/7 hamster?')
# (['Manatee', 'cheetah', 'hamster'], [Fraction(3, 7), Fraction(3, 7), Fraction(-4, 7)])
(방법)
from fractions import Fraction
import re
def decompose(input_string):
words = input_string.split() # 문자열을 공백으로 분리하여 단어들을 추출
fractions_list = [] # 분수와 단어를 저장할 리스트를 초기화
words_list = []
for idx in range(len(words)): # 단어들을 순회하면서 분수인지 확인
word = words[idx]
try:
fraction_value = Fraction(word) # 분수로 변환 가능한 경우 분수 값을 저장
fractions_list.append(fraction_value)
clean_str = re.sub(r'[^\w\s]', '', words[idx+1]) # ? 등의 특수문자들 제거(re는 정규화 패키지)
words_list.append(clean_str) # 분수뒤 단어 추출해서 저장
except ValueError:
pass
return words_list, fractions_list
# 예시 입력
input_string = "What is 4/7 wallaby, 1/4 parakeet and 3/5 perch?"
result = decompose(input_string)
print(result)
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : matplotlib의 축제목과 그래프 사이의 간격 조정 (1) | 2023.11.21 |
---|---|
[파이썬] 문제 : 라면명으로 라면 레시피 찾기 (0) | 2023.11.20 |
[파이썬] 문제 : pandas의 학생별 총점,평균,등수 계산 (1) | 2023.11.18 |
[파이썬] 문제 : 점수로 학점으로 변환해 출력 (0) | 2023.11.17 |
[파이썬] 문제 : 카페 메뉴 입력 받기 (0) | 2023.11.16 |
댓글