HOWTO · Python
Python에서 대괄호없이 목록 인쇄
이 자습서는 Python에서 대괄호없이 목록을 인쇄하는 방법을 보여줍니다.
이 페이지의 내용
Python 목록을 대괄호 없이 표시하려면 언패킹으로 요소를 출력하거나, 문자열 요소를 구분자로 연결하거나, 반복문에서 각 항목의 형식을 지정해 출력할 수 있습니다. 출력만 필요하다면 print()를 사용하고, 저장하거나 다른 곳에 전달할 새 문자열이 필요하다면 join()를 사용하세요. 아래 예제에서 각 방법의 정확한 출력을 확인할 수 있습니다.
다음 예제를 실행하세요:
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
items = ["x", "y", "z"]
print(*items, sep=",")
x,y,z
문자열 목록에는 join() 사용
구분자 문자열에 join()를 호출합니다. 입력 문자열 사이에 구분자를 넣어 하나의 문자열을 반환하므로, 형식이 지정된 결과를 변수에 저장하거나 다른 텍스트와 결합하거나 나중에 기록할 때 유용합니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
items = ["red", "green", "blue"]
result = ", ".join(items)
print(result)
red, green, blue
모든 요소는 이미 문자열이어야 합니다. 목록에 정수나 다른 비문자열 값이 있으면 join()에서 TypeError가 발생합니다. 이때는 아래 예제처럼 요소를 먼저 변환하세요. 빈 목록을 연결하면 빈 문자열이 되고, 요소가 하나뿐인 목록의 결과에는 구분자가 없습니다.
여러 자료형에는 언패킹과 print() 사용
* 연산자는 반복 가능한 객체의 요소를 각각 위치 인수로 풉니다. print()는 자료형이 서로 다른 값도 받아 출력할 문자열로 변환합니다. sep 매개변수로 인수 사이에 넣을 문자열을 지정할 수 있으며, 기본값은 공백 하나입니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
values = [1, "two", 3.0, True]
print(*values, sep=" | ")
1 | two | 3.0 | True
이 방법은 표준 출력에 바로 기록하며, 재사용할 수 있는 연결 문자열을 만들지는 않습니다. 빈 목록은 언패킹해도 전달되는 값이 없으므로 print()는 끝에 줄바꿈만 출력합니다. 값을 붙여 출력하려면 sep=""를 사용하고, 공백이 적절하다면 기본값을 그대로 두세요.
연결하기 전에 값을 문자열로 변환
숫자 같은 값으로 문자열 결과를 만들려면 map(str, values)나 컴프리헨션을 사용해 각 항목을 명시적으로 변환하세요. 이렇게 하면 구분자를 원하는 대로 정할 수 있습니다. 변환에는 각 값의 str() 형식이 사용됩니다. 이 형식은 읽기 쉬운 텍스트를 위한 것이며 자료형 정보를 보존하지 않을 수 있습니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
numbers = [1, 2, 3]
result = ",".join(map(str, numbers))
print(result)
1,2,3
값을 변환하거나 필터링하는 작업도 필요하다면 컴프리헨션이 유용합니다. 예를 들면 ", ".join(str(value) for value in numbers)와 같습니다. 어느 방법을 사용해도 원래 목록은 바뀌지 않습니다. 두 방법 모두 결과 표시를 위한 문자열을 만듭니다.
빠른 표시에는 str() 슬라이싱 사용
목록에 str()를 호출하면 바깥쪽 대괄호를 포함한 목록의 Python 표현이 만들어집니다. 간단히 표시할 때는 [1:-1]로 그 표현의 첫 문자와 마지막 문자를 제거할 수 있습니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
items = [1, 2, 3]
print(str(items)[1:-1])
1, 2, 3
이 방법은 문자열 요소를 둘러싼 따옴표나 중첩 목록의 대괄호처럼 표현에 포함된 세부 사항을 그대로 유지합니다. 간단히 살펴볼 때는 편리하지만 범용 형식 지정 방법이나 직렬화 형식은 아닙니다. 구분자를 명시하고 요소를 예측 가능한 방식으로 표시해야 한다면 값을 문자열로 변환한 뒤 연결하세요.
항목별 형식 지정에는 반복문으로 각각 출력
각 항목을 별도로 형식 지정하거나 항목 뒤에 무엇을 출력할지 제어하려면 반복문을 사용하세요. print()는 보통 호출할 때마다 줄바꿈을 끝에 붙이며, end를 설정하면 끝부분을 바꿀 수 있습니다. 항목을 하나씩 출력하면서 구분하려면 end에 구분자도 포함하세요.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
items = [1, 2, 3]
for index, item in enumerate(items):
if index:
print(" ", end="")
print(item, end="")
print()
1 2 3
반복문은 항목 사이에만 구분자를 기록하고, 마지막 print()가 끝에 줄바꿈을 붙입니다. 이렇게 하면 마지막에 공백이 남지 않아 출력되는 줄을 정확히 만들 수 있습니다. 반복문은 표준 출력에 내용을 하나씩 기록하므로, 한 번에 출력하거나 재사용할 문자열이 필요하다면 언패킹이나 연결을 선택하세요. 항목마다 다른 형식을 적용하려면 반복문 안에서 텍스트를 만들거나 형식이 지정된 값을 print()에 전달하세요.