- 문단과 금지어가 주어지는데, 가장 많이 나온 단어를 출력
- 단, 금지어에 포함안되어 있어야함\
- 사용되는 특수문자는 문제에서 주어진다.
- 정규식을 사용하면 문단을 구분하기 쉬움
- 리스트 컴프리헨션을 이용해서 새로운 리스트 만들어보기
- most_common()을 자주 사용할 것 같음
def mostCommonWord(paragraph, banned) -> str:
# 리스트 컴프리헨션을 이용해서 새로운 리스트를 만든다.
# 정규 표현식으로 현재 paragraph에서 특수문자를 공백으로 만들고, 공백 기준으로 문자를 잘라서 넣어둔다.
change_sub = [word for word in re.sub('[.,!?\';]', ' ', paragraph.lower()).split()]
# 책에 나온 방법인데, 나눈 문자열이 banned에 있는지 한번 확인하고 넣어주도록 하는것
# 이게 더 깔끔하다. 밑에 for문 한번 더 안써도 되고
change_sub2 = [word for word in re.sub('[/W]', ' ', paragraph).lower().split() if word not in banned]
counter = collections.Counter(change_sub)
result_count = counter.most_common()
for item in result_count:
if item[0] in banned:
continue
else:
return item[0]
return ""