728x90
반응형
(문제)
파이썬 리스트 특정 문자 "01.", "02." 들 삭제 하고 싶습니다.
list = ['반갑습니다.','01. 안녕하세요', '02. 잘자요','다음에 또 만나요']
이런식으로 문자열로 된 리스트에 01. 02. 숫자들이 끼워져있는 경우가 있는데요.
번호가 10이 넘어갈 때도 있습니다. 그럴 경우 해당 "01.", "02." 들 삭제 하고 싶은데요.
삭제하고 난 결과는
list = ['반갑습니다.','안녕하세요', '잘자요','다음에 또 만나요']
이렇게 만들고 싶습니다.
(방법)
lst = ['반갑습니다.','01. 안녕하세요', '02. 잘자요','다음에 또 만나요','안녕하세요 13.65kg','10.안녕하세요 13.65kg']
data = [] # 정리된 문장 저장용 리스트
for i in range(len(lst)): # 문장수만큼 반복
ss = lst[i] # 하나의 문장
if '.' in ss: # 문장에 '.'이 있는지 확인
if ss.find('.') != len(ss)-1: # '.'이 있지만 뒤에서 첫번쩨에 있지 않으면(마지막 종료점이 아니면)
no = ss[:ss.find('.')-1] # '.' 앞부분이 '10.'과 같은 구조인지 파악 위해 분리
if no.isnumeric(): # 분리된 부분이 숫자 형태인지 확인. 숫자형태면 사용하지 않음
ss = ss[ss.find('.')+1:].strip() # '.'으로 문장을 분리하고 그 중에서 뒤에 있는 문장사용.strip으로 빈공백 제거
else: # 없어도 되는 부분. ss가 그대로 사용됨. 하지만 코드를 읽을때 혼동을 막기 위함.
ss = ss # 위와 같음
data.append(ss) # 정리된 문장에 추가
print(data)
결과
['반갑습니다.', '안녕하세요', '잘자요', '다음에 또 만나요', '안녕하세요 13.65kg', '안녕하세요 13.65kg']
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 분기별 세금 계산 및 최대 세금 분기 확인 (0) | 2022.12.02 |
---|---|
[파이썬] 문제 : 주석표시 기점으로 두 반복문을 하나로 묶기 (0) | 2022.12.02 |
[파이썬] 문제 : 두 문자열 합쳐서 문자를 오름차순으로 정렬 (0) | 2022.12.02 |
[파이썬] 문제 : 리스트의 마지막 값을 return 하는 함수 (0) | 2022.12.02 |
[파이썬] 문제 : 메뉴 선택 출력(menuDisplay, 트러플 등) (0) | 2022.12.02 |
댓글