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

파이썬에서 문자열에 다른 문자열 추가하기: += 연산자와 join() 활용법

파이썬에서 문자열을 더한다는 것은 두 개의 문자열을 이어 붙여(연결하여) 새로운 문자열을 만드는 것을 의미합니다. 텍스트 분석이나 동적인 문장 생성 등 다양한 상황에서 유용하게 활용됩니다. 이 글에서는 하나의 문자열을 다른 문자열에 추가하는 대표적인 두 가지 방법을 소개합니다.

1. += 연산자 사용하기

숫자에 사용하던 + 연산자는 문자열에도 동일하게 적용할 수 있습니다. 다만 숫자의 경우 산술 덧셈이 수행되는 반면, 문자열의 경우에는 연결(concatenation)이 일어난다는 점이 다릅니다. 아래 예제를 살펴보겠습니다.

예제

s1 = "What a beautiful "
s2 = "flower "

print("주어진 문자열 s1 : " + str(s1))
print("주어진 문자열 s2 : " + str(s2))
# += 연산자로 문자열 연결
res1 = s1 + s2
print("문자열을 더한 결과 : ", res1)

# 숫자도 문자열로 취급하는 경우
s3 = '54'
s4 = '02'
print("주어진 문자열 s3 : " + str(s3))
print("주어진 문자열 s4 : " + str(s4))
res2 = s3 + s4
print("문자열을 더한 결과 : ", res2)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

주어진 문자열 s1 : What a beautiful 
주어진 문자열 s2 : flower 
문자열을 더한 결과 : What a beautiful flower 
주어진 문자열 s3 : 54
주어진 문자열 s4 : 02
문자열을 더한 결과 : 5402

주목할 점은 '54'와 '02'처럼 따옴표로 묶인 값은 정수가 아니라 문자열로 취급되기 때문에, 덧셈 결과가 56이 아니라 '5402'라는 새로운 문자열이 된다는 것입니다.

2. join() 메서드 사용하기

join() 메서드는 위에서 살펴본 + 연산자와 같은 방식으로 문자열을 연결할 때 사용할 수 있습니다. 특히 join()은 두 개뿐 아니라 임의 개수의 문자열을 한 번에 연결할 수 있다는 장점이 있으며, 연결 기준이 되는 구분자(구분 문자열)를 자유롭게 지정할 수 있습니다. 결과는 + 연산자를 사용했을 때와 동일합니다.

예제

s1 = "What a beautiful "
s2 = "flower "

print("주어진 문자열 s1 : " + str(s1))
print("주어진 문자열 s2 : " + str(s2))
print("문자열을 더한 결과 : ", " ".join((s1, s2)))

# 숫자도 문자열로 취급하는 경우
s3 = '54'
s4 = '02'
print("주어진 문자열 s3 : " + str(s3))
print("주어진 문자열 s4 : " + str(s4))
print("문자열을 더한 결과 : ", "".join((s3, s4)))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

주어진 문자열 s1 : What a beautiful 
주어진 문자열 s2 : flower 
문자열을 더한 결과 : What a beautiful flower 
주어진 문자열 s3 : 54
주어진 문자열 s4 : 02
문자열을 더한 결과 : 5402

첫 번째 예제에서는 구분자로 공백(" ")을 사용해 두 단어 사이에 공백이 들어갔고, 두 번째 예제에서는 빈 문자열("")을 구분자로 지정해 문자열들이 그대로 이어 붙여졌습니다.

정리 및 참고 사항

  • + 또는 += 연산자: 직관적이고 간단하지만, 반복문 안에서 많은 문자열을 계속 연결하면 매번 새로운 문자열 객체가 생성되어 성능이 떨어질 수 있습니다.
  • join() 메서드: 여러 문자열을 한 번에 연결할 때 가장 효율적이며, 파이썬 공식 스타일 가이드에서도 권장하는 방식입니다.
  • 그 외에도 f-string(f"{s1}{s2}")이나 format() 메서드를 활용해 문자열을 조합할 수 있습니다.

상황에 맞는 방법을 선택하면 코드의 가독성과 성능을 모두 챙길 수 있습니다.