이 글에서는 파이썬 3.x 환경에서 join() 함수를 구현하고 활용하는 방법을 살펴보겠습니다.
join() 함수는 이터러블(iterable)의 요소들을 하나의 문자열로 합쳐 주는 문자열 메서드입니다. 가장 널리 쓰이는 대상은 리스트이며, 요소 사이에 삽입할 구분자(delimiter)는 임의의 문자열이 될 수 있고, 빈 문자열도 가능합니다.
리스트 요소를 구분자로 연결하기
먼저 리스트 이터러블에 대한 가장 일반적인 사용 예시입니다. 아래 코드에서는 리스트의 각 요소를 -> 구분자로 연결합니다.
# iterable 선언 list_1 = ['t','u','t','o','r','i','a','l'] s = "->" # 사용할 구분자 # 리스트 요소를 '->'로 연결 print(s.join(list_1))
출력 결과
t->u->t->o->r->i->a->l
빈 구분자로 연결하기
구분자로 빈 문자열("")을 지정하면 요소들이 구분자 없이 그대로 이어 붙여집니다.
# iterable 선언 list_1 = ['t','u','t','o','r','i','a','l'] s = "" # 빈 구분자 # 리스트 요소를 ''로 연결 print(s.join(list_1))
출력 결과
tutorial
딕셔너리 키 연결하기
join() 함수는 딕셔너리에도 적용할 수 있으며, 이 경우 값(value)이 아닌 키(key)들이 연결됩니다. 단, 모든 키가 문자열이어야 한다는 점에 유의해야 합니다.
# iterable 선언
dict_1 = {'t':'u','r':'i','a':'l'}
dict_2 = {1:'u', 2:'o', 3:'i', 4:'l'}
s = " " # 공백으로 구분
# 딕셔너리 키를 ' '로 연결
print(s.join(dict_1))
print(s.join(dict_2))출력 결과
t r a ------------------------------------------------------------- TypeError
dict_1은 키가 모두 문자열이므로 정상적으로 연결되지만, dict_2처럼 키가 정수인 경우에는 join() 함수가 문자열이 아닌 요소를 처리할 수 없어 TypeError가 발생합니다. 이런 경우에는 map(str, ...) 등을 사용해 요소를 먼저 문자열로 변환한 뒤 join()을 호출해야 합니다.
이 외에도 튜플(tuple), 집합(set) 등 다른 종류의 이터러블에도 같은 방식으로 join() 함수를 적용할 수 있습니다.
마무리
이번 글에서는 파이썬 join() 함수의 기본 개념과 리스트, 딕셔너리 등 다양한 이터러블에 대한 활용 방법을 알아보았습니다. join()은 반복문 없이 간결하게 문자열을 합칠 수 있는 강력한 도구이므로, 실무 코드에서 성능 최적화 차원에서도 적극적으로 활용해 보시기 바랍니다.