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

Python – 문자열을 나눈 조각이 모두 동일한지 확인하는 방법

문자열을 특정 구분자로 나눈 뒤, 분할된 조각들이 모두 동일한 값인지 확인해야 하는 경우가 종종 있습니다. 이럴 때는 len() 함수, list, 그리고 set 자료형을 if 조건문과 함께 사용하면 간단하게 해결할 수 있습니다.

핵심 원리

핵심 아이디어는 매우 직관적입니다. 문자열을 구분자로 분할한 결과를 set으로 변환하면 중복 요소가 자동으로 제거되어 고유한 값만 남게 됩니다. 만약 모든 조각이 동일하다면 고유 요소는 딱 하나뿐일 것이므로, 집합의 길이가 1인지 검사하면 곧바로 결과를 알 수 있습니다.

예제 코드

아래는 전체 과정을 보여주는 예제입니다.

my_string = '96%96%96%96%96%96'

print("확인할 문자열 : ")
print(my_string)

my_split_char = "%"
print("문자열을 나눌 기준 문자 :")
print(my_split_char)

my_result = len(list(set(my_string.split(my_split_char)))) == 1

if my_result == True:
    print("모든 조각이 서로 같습니다.")
else:
    print("조각 중에 서로 다른 값이 존재합니다.")

실행 결과

확인할 문자열 : 
96%96%96%96%96%96
문자열을 나눌 기준 문자 :
%
모든 조각이 서로 같습니다.

코드 설명

  • 먼저 확인 대상이 되는 문자열을 정의하고 콘솔에 출력합니다.
  • 문자열을 나눌 기준이 되는 구분자 문자를 정의하고, 이 역시 화면에 표시합니다.
  • split() 메서드를 사용해 문자열을 구분자 기준으로 분할합니다.
  • 분할 결과를 set으로 변환하여 중복 요소를 제거하고 고유한 값만 남깁니다.
  • 이 집합을 다시 list로 변환한 뒤, 그 길이가 1과 같은지 비교합니다.
  • 비교 결과로 얻은 불리언 값을 변수에 저장합니다.
  • if 조건문에서 이 불리언 값을 판단해, 모든 조각이 동일한지 여부에 따라 적절한 메시지를 출력합니다.

참고: 더 간결한 대안

중간에 list로 변환하는 단계를 생략하고 집합의 길이만 바로 확인해도 동일한 결과를 얻을 수 있습니다.

parts = my_string.split(my_split_char)
is_equal = len(set(parts)) == 1

또는 all() 함수를 사용해 첫 번째 조각과 나머지 조각들을 일괄 비교하는 방법도 있습니다. 데이터 양이 많을 경우 조기 종료(early exit)가 가능해 성능 면에서 유리할 수 있습니다.

is_equal = all(part == parts[0] for part in parts)