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

파이썬(Python)으로 두 문자열 중 한쪽에만 존재하는 문자 출력하기

개요

두 문자열에 각각 존재하지만 두 문자열에 공통으로 포함되지 않은 문자를 표시해야 하는 경우가 있습니다. 이때 사용자로부터 입력을 받은 뒤 파이썬의 list(리스트)와 set(집합) 자료구조를 활용하면 손쉽게 구현할 수 있습니다.

리스트(List)란?

리스트는 서로 다른 타입의 값을 함께 저장할 수 있는 자료구조입니다. 정수, 실수, 문자열 등 어떤 데이터 타입이든 저장할 수 있으며, list() 메서드를 사용하면 주어진 반복 가능한(iterable) 객체를 리스트 타입으로 변환할 수 있습니다.

집합(Set)이란?

파이썬에는 set이라는 내장 자료형이 기본으로 제공됩니다. 집합은 중복을 허용하지 않는 고유한(unique) 요소만 가지며, 교집합(intersection), 차집합(difference), 합집합(union), 대칭차집합(symmetric difference) 같은 집합 연산을 수행할 때 특히 유용합니다.

예제 코드

다음은 두 문자열에서 한쪽에만 존재하는 문자를 찾아 출력하는 프로그램입니다.

my_str_1 = input("Enter the first string...")
my_str_2 = input("Enter the second string...")
my_result = list(set(my_str_1)^set(my_str_2))
print("The letters in strings but not in both the strings are :")
for i in my_result:
    print(i)

실행 결과

Enter the first string...Jane
Enter the second string...Kane
The letters in strings but not in both the strings are :
K
J

코드 설명

  • input() 함수를 통해 첫 번째 문자열과 두 번째 문자열, 두 개의 사용자 입력을 받습니다.
  • 각 문자열을 set()으로 변환하여 집합 구조로 만듭니다.
  • ^ 연산자를 사용해 두 집합 간의 대칭차집합(symmetric difference) 연산을 수행합니다. 즉, 두 집합 중 한쪽에만 존재하는 요소들만 결과로 남게 됩니다.
  • 연산 결과를 list()로 변환하여 변수에 저장합니다.
  • for 문으로 결과를 순회하며 콘솔에 하나씩 출력합니다.

핵심 포인트

위 예제에서 "Jane"과 "Kane"의 공통 문자는 'a', 'n', 'e'이므로 결과에서 제외되고, 첫 번째 문자열에만 있는 'J'와 두 번째 문자열에만 있는 'K'만 출력됩니다. 참고로 집합은 요소의 순서를 보장하지 않기 때문에 출력 순서는 실행할 때마다 달라질 수 있다는 점도 기억해 두면 좋습니다.