Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자 등장 횟수에 따라 두 개의 출력 문자열 생성하기


이 프로그램에서는 하나의 문자열을 입력받아 특정 조건에 따라 문자를 분류하고 개수를 세는 방법을 다룹니다. 첫 번째 조건은 한 번만 나타나는 문자를 모두 추출하는 것이고, 두 번째 조건은 두 번 이상 나타나는 문자를 모두 추출하는 것입니다. 그런 다음 각각의 결과를 별도의 문자열로 정렬하여 출력합니다.

이러한 결과를 얻기 위해 따르는 논리적 절차는 아래와 같습니다.

  • Counter가 입력 문자열을 키(key)와 값(value)으로 구성된 딕셔너리(Dictionary) 형태로 변환합니다.
  • join() 메서드를 사용하여 한 번만 나타나는 문자 목록과 두 번 이상 나타나는 문자 목록을 각각 분리합니다.

아래 프로그램에서는 입력 문자열을 받아 위의 로직을 적용해 결과를 확인할 수 있습니다.

예제

from collections import Counter

def Inputstrings(load):
    Dict = Counter(load)
    occurrence = [key for (key, value) in Dict.items() if value == 1]
    occurrence_1 = [key for (key, value) in Dict.items() if value > 1]
    occurrence.sort()
    occurrence_1.sort()
    print('한 번만 나타나는 문자:')
    print(''.join(occurrence))
    print('두 번 이상 나타나는 문자:')
    print(''.join(occurrence_1))

if __name__ == "__main__":
    load = "Tutorialspoint has best tutorials"
    Inputstrings(load)

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

출력

한 번만 나타나는 문자:
Tbehnp
두 번 이상 나타나는 문자:
ailorstu

이처럼 collections.Counter를 활용하면 복잡한 반복문 없이도 문자별 등장 횟수를 손쉽게 집계할 수 있으며, 리스트 컴프리헨션과 sort(), join()을 조합해 원하는 형태의 출력 문자열을 깔끔하게 만들 수 있습니다.