본문 바로가기

Python

[파이썬] 문장에서 특정 값 이후부터 삭제

예를 들어 "이상으로 파이썬 강좌를 마치겠습니다. 한정특가 50% 할인" 라는 문장에서

"한정특가"부터 삭제를 해주는 코드입니다.

to_partitioning = ['한정특가', '오늘만 할인', '지금 아니면']
text = '이상으로 파이썬 강좌를 마치겠습니다. 한정특가 50% 할인'

for replace_text in to_partitioning:
    if (replace_text in text) & (len(text.partition(replace_text)[0]) > len(text.partition(replace_text)[2])):
        text = text.partition(replace_text)[0]
        text = text.strip()

print(text)
'''
'이상으로 파이썬 강좌를 마치겠습니다.'
'''

 

여러 문장으로 구성된 list에서도 가능합니다.

to_partitioning = ['한정특가', '오늘만 할인', '지금 아니면']
def partitioning(content_list):
    partition_list = []
    for text in content_list:
        for replace_text in to_partitioning:
            if (replace_text in text) & (len(text.partition(replace_text)[0]) > len(text.partition(replace_text)[2])):
                text = text.partition(replace_text)[0]
                text = text.strip()
                partition_list.append(text)

    return partition_list


text_list = ['이상으로 파이썬 강좌를 마치겠습니다. 한정특가 50% 할인', 
             '날씨가 매우 덥습니다. 오늘만 할인: 광어초밥',
             '지금이 아니면 못삽니다! 간장게장']

partitioning(text_list)

'''
['이상으로 파이썬 강좌를 마치겠습니다.', '날씨가 매우 덥습니다.']
'''

 

content_list에 있는 문장에서 "한정특가", "오늘만 할인", "지금 아니면" 으로 시작하는 부분들이 삭제 되었습니다.

마지막 문장의 경우 "지금 아니면"이 아예 시작부터 나왔기 때문에, 전체 문장이 삭제가 되었습니다.