텍스트 파일에서 필요한 문자열을 찾은 뒤 그 개수 알아보고 비교하기

조회수 2796회

txt 파일에서 필요한 문자열을 찾은 뒤 그것들을 뽑아내서 총 개수가 몇 개 인지 알아보고, 비교해보고 싶습니다.

현재 만들어 본 코드를 대강 생략해서 보여드리겠습니다 !

f = open
file = f.read()
file_s = file.split()

a = [필요한 문자열들 1]
b = [필요한 문자열들 2]

p_a = 0
p_b = 0

for c in file_s: # (또는 변수 c가 필요가 없는 것 같아서 while file_s != 0 을 사용하려 생각 중 입니다.)
    if ???.count()???>= 1 :
        p_a += 1
    elif ???.count()???>= 1:
        p_b += 1
    if p_a > p_b:
        print("a")
        break
    elif p_a == p_b:
        print ("=")
        break
    else:
        print("b")
        break

여기서 문제가 되는 부분은 for문 바로 아래 물음표로 해놓은 if와 elif 입니다.. (물론 다른 부분도 문제가 있겠지만 현재 아무것도 모르는 제가 보기에 ㅜㅜ)

count 함수를 써야하는 건 알겠는데 어떤 식으로 써야할지 짐작이 안 갑니다..

txt 내에 제가 필요로 하는 문자열들 중. 만약 a 리스트 안에 있는 문자열이 있다면 p_a에 1을 더하고 싶고, b 리스트 안에 있는 문자열이 있다면 p_b에 1을 더하고 싶습니다.

그런데 필요로 하는 문자열이 여러 개이기 때문에 문자열을 구하지 않고, 문자열의 개수를 알고싶고, 문자열의 개수를 비교해서 개수가 큰 값이 출력되게 하고싶다. 이런 얘기인데 제가 잘 설명한건지도 모르겠네요...

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 문서의 모든 단어의 카운트를 미리 저장해놓고 개별적으로 찾고자 하는 단어를 모든 단어에서 찾아 카운트를 더하면 되겠죠.

    from collections import Counter
    
    a = ('dhclient', '5828', 'bioset')
    b = ('vmstat', 'bioset', '0:00.00')
    
    f = open('...')
    
    wordcount = Counter(f.read().split())    # 파일에서 단어 카운트. 크기순 내림차순 정렬되어 있음
    
    p_a = sum(wordcount[word] for word in a)    # a에 존재하는 단어 카운트 더함
    p_b = sum(wordcount[word] for word in b)    # b에 존재하는 단어 카운트 더함
    
    print(p_a, p_b)
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)