다음은 파이썬에서 문자열 str을 연결하고 결합하는 방법에 대한 설명입니다.
- 여러 문자열 연결 및 병합:
+
,+=
운영자 - 숫자와 문자열 연결 및 결합:
+
,+=
운영자,str()
,format()
,f-문자열 - 문자열 목록(배열)을 단일 문자열로 연결 및 결합:
join()
- 숫자 목록(배열)을 단일 문자열로 연결 및 결합:
join()
,str()
여러 문자열 연결 및 병합:+,+=운영자
연결:+운영자
++ 연산자는 다음 문자열 리터럴과 문자열 변수를 연결하는 데 사용할 수 있습니다.
- …’
- “…”
s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc
s1 = 'aaa'
s2 = 'bbb'
s3 = 'ccc'
s = s1 + s2 + s3
print(s)
# aaabbbccc
s = s1 + s2 + s3 + 'ddd'
print(s)
# aaabbbcccddd
연결:+=운영자
누적 할당 연산자인 += 연산자도 사용할 수 있습니다. 왼쪽의 문자열 변수는 오른쪽의 문자열과 연결되어 할당되고 업데이트됩니다.
s1 += s2
print(s1)
# aaabbb
문자열 변수 끝에 문자열을 추가하려면 += 연산자를 사용하여 문자열 변수와 문자열 리터럴(또는 다른 문자열 변수)을 처리하기만 하면 됩니다.
s = 'aaa'
s += 'xxx'
print(s)
# aaaxxx
문자열 리터럴의 연속 연결
단순히 문자열 리터럴을 나란히 작성하면 문자열 리터럴이 연결됩니다.
s = 'aaa''bbb''ccc'
print(s)
# aaabbbccc
두 줄 사이에 공백을 두거나 백슬래시 줄 바꿈(연속으로 간주)을 사용할 수 있습니다.
s = 'aaa' 'bbb' 'ccc'
print(s)
# aaabbbccc
s = 'aaa'\
'bbb'\
'ccc'
print(s)
# aaabbbccc
이것을 사용하여 코드의 여러 줄에 긴 문자열을 작성하는 기술이 있습니다.
- 관련 기사:Python에서 여러 줄에 긴 문자열 쓰기
이 쓰기 방법은 문자열 변수에 사용할 수 없습니다.
# s = s1 s2 s3
# SyntaxError: invalid syntax
숫자 및 문자열 연결/연결:+,+=운영자,str(),format(),f-문자열
다른 유형의 + 연산은 오류를 발생시킵니다.
s1 = 'aaa'
s2 = 'bbb'
i = 100
f = 0.25
# s = s1 + i
# TypeError: must be str, not int
숫자 값(예: 정수 유형 int 또는 부동 소수점 유형 float)을 문자열과 연결하려면 str()을 사용하여 숫자 값을 문자열 유형으로 변환한 다음 + 연산자(또는 += 연산자)를 사용하여 연결합니다. ).
s = s1 + '_' + str(i) + '_' + s2 + '_' + str(f)
print(s)
# aaa_100_bbb_0.25
0 채우기 또는 소수 자릿수와 같은 숫자 형식을 변환하려면 format() 함수 또는 문자열 메서드 format()을 사용합니다.
s = s1 + '_' + format(i, '05') + '_' + s2 + '_' + format(f, '.5f')
print(s)
# aaa_00100_bbb_0.25000
s = '{}_{:05}_{}_{:.5f}'.format(s1, i, s2, f)
print(s)
# aaa_00100_bbb_0.25000
물론 형식을 지정하지 않고 변수 값을 문자열에 직접 포함하는 것도 가능합니다. 이것은 + 연산자를 사용하는 것보다 작성하기 쉽습니다.
s = '{}_{}_{}_{}'.format(s1, i, s2, f)
print(s)
# aaa_100_bbb_0.25
형식을 지정하는 방법에 대한 자세한 내용은 다음 문서를 참조하십시오.
Python 3.6 이후로 f-문자열(f-문자열)이라는 메커니즘도 도입되었으며, 이는 format()보다 작성하기 훨씬 쉽습니다.
s = f'{s1}_{i:05}_{s2}_{f:.5f}'
print(s)
# aaa_00100_bbb_0.25000
s = f'{s1}_{i}_{s2}_{f}'
print(s)
# aaa_100_bbb_0.25
문자열의 목록(배열) 연결 및 결합:join()
문자열 메서드 join()을 사용하여 문자열 목록을 단일 문자열로 연결할 수 있습니다.
작성하는 방법은 다음과 같습니다.
'String to be inserted between'.join([List of strings to be concatenated])
사이에 삽입할 문자열’을 사용하여 join() 메서드를 호출하고 [연결할 문자열 목록]을 인수로 전달합니다.
빈 문자열을 사용하면 [연결할 문자열 목록]을 단순히 연결하고, 쉼표를 사용하면 문자열을 쉼표로 구분하고, 개행 문자를 사용하면 각 문자열 요소를 개행합니다.
l = ['aaa', 'bbb', 'ccc']
s = ''.join(l)
print(s)
# aaabbbccc
s = ','.join(l)
print(s)
# aaa,bbb,ccc
s = '-'.join(l)
print(s)
# aaa-bbb-ccc
s = '\n'.join(l)
print(s)
# aaa
# bbb
# ccc
여기에는 목록의 예만 나와 있지만 튜플과 같은 다른 반복 가능한 객체도 join()에 대한 인수로 지정할 수 있습니다.
join()과 달리 split()은 특정 구분 기호로 구분된 문자열을 분할하고 목록으로 가져오는 데 사용됩니다.
숫자 목록(배열)을 문자열로 연결 및 결합:join(),str()
join()에 대한 인수가 요소가 문자열이 아닌 목록이면 오류가 발생합니다.
l = [0, 1, 2]
# s = '-'.join(l)
# TypeError: sequence item 0: expected str instance, int found
숫자 목록을 단일 문자열로 연결하려면 목록 이해 표기법의 각 요소에 str() 함수를 적용하여 숫자를 문자열로 변환한 다음 join()으로 결합하십시오.
s = '-'.join([str(n) for n in l])
print(s)
# 0-1-2
목록 이해의 생성기 버전인 생성기 식으로 작성할 수도 있습니다. 생성기 표현식은 괄호로 묶여 있지만 생성기 표현식이 함수나 메서드에 대한 유일한 인수인 경우 괄호를 생략할 수 있습니다.
s = '-'.join((str(n) for n in l))
print(s)
# 0-1-2
s = '-'.join(str(n) for n in l)
print(s)
# 0-1-2
생성기 표현식은 일반적으로 목록 이해보다 적은 메모리를 사용하는 이점이 있지만 join()이 내부 처리에서 생성기를 목록으로 변환하기 때문에 생성기 표현식을 사용하는 데 특별한 이점은 없습니다. 사실 처음부터 목록 이해를 사용하는 것이 약간 더 빠릅니다.
목록 이해 및 생성기 표현식에 대한 자세한 내용은 다음 문서를 참조하십시오.
- 관련 기사:Python 목록 이해를 사용하는 방법