Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

고유한 단어를 계산하고 빈도를 계산하는 Python 프로그램

<시간/>

단어 목록이 있다고 가정합니다. 이 단어는 여러 번 나타날 수 있습니다. 우리는 이러한 단어의 빈도를 보여주고 얼마나 많은 고유한 단어가 있는지 계산해야 합니다.

따라서 입력이 단어 =["Book", "Sound", "Language", "Computer", "Book", "Language"]와 같은 경우 출력은 (4, '2 1 2 1') 4개의 별개의 단어가 있기 때문에 첫 번째와 세 번째 단어가 두 번 발생했습니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • d:=삽입 주문에 따라 항목을 저장하는 OrderedDict
  • 단어의 각 w에 대해 수행
    • w가 d에 있으면
      • d[w] :=d[w] + 1
    • 그렇지 않으면
      • d[w] :=1
  • d의 모든 키 목록 크기의 쌍으로 d의 모든 값을 문자열로 결합한 다음 반환합니다.

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

from collections import OrderedDict

def solve(words):
   d=OrderedDict()
   for w in words:
      if w in d:
         d[w] += 1
      else:
         d[w] = 1
   return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()])

words = ["Book", "Sound", "Language", "Computer", "Book", "Language"]
print(solve(words))

입력

["Book", "Sound", "Language", "Computer", "Book", "Language"]

출력

(4, '2 1 2 1')