문자열 목록을 한 줄로 만들려면 구분자.join(목록)을 쓰세요. 아래 예제는 가상 노선의 정류장 이름 세 개를 화살표로 연결합니다.
stops = ["서울", "수원", "천안"]
separator = " → "
print(separator.join(stops))
print(str(stops))
서울 → 수원 → 천안
['서울', '수원', '천안']
join()에는 원소 사이에 넣을 구분자를 지정할 수 있습니다. str(stops)는 대괄호와 따옴표를 포함한 리스트 전체의 표시를 얻을 때 쓰는 호출입니다.
문자열 하나를 넘기면 글자 사이에 구분자가 들어갑니다
join()은 넘겨받은 값에서 원소를 하나씩 꺼냅니다. "수원"을 직접 넘기면 "수"와 "원"을 받습니다. 정류장 이름 전체를 한 항목으로 다루려면 ["수원"]으로 감싸세요.
separator = " → "
stop = "수원"
print(separator.join(stop))
print(separator.join([stop]))
print(repr(separator.join([])))
수 → 원
수원
''
항목이 한 개면 그 문자열만 남고, 항목이 없으면 빈 문자열이 됩니다. 마지막 줄의 따옴표는 빈 결과를 눈으로 확인할 수 있게 repr()로 붙인 표시입니다.
숫자 원소는 표시할 형태를 정한 뒤 결합합니다
정류장 번호가 정수 목록으로 들어왔다고 해 봅시다. join()은 각 원소가 문자열이어야 하므로 정수를 그대로 넣으면 TypeError가 납니다. 평범한 십진수 표기가 필요하면 각 번호를 str()로 바꿔 전달하면 됩니다.
numbers = [7, 12, 21]
try:
print(", ".join(numbers))
except TypeError as error:
print(type(error).__name__)
print(", ".join(str(number) for number in numbers))
TypeError
7, 12, 21
"007"처럼 앞의 0까지 의미가 있는 코드는 문자열 상태로 전달하세요. str(7)은 "7"을 만듭니다.
가상 정류장 예제는 Windows의 CPython 3.14.3에서 실행했습니다. 문자열 원소와 구분자의 규칙은 Python의 str.join 문서에서 확인할 수 있습니다. 입력 한 줄을 먼저 조각으로 나눠야 한다면 split에서 구분자를 지정했을 때의 차이를 참고하세요.