때때로 요소가 모두 정수로 이루어진 리스트를 다루다 보면, 이 개별 요소들을 모두 하나로 합쳐서 단일 정수를 만들어야 하는 경우가 있습니다. 예를 들어 [22, 11, 34]라는 리스트가 있다면 이를 221134라는 하나의 정수로 변환하는 것이죠.
이 글에서는 Python에서 이러한 변환을 수행하는 대표적인 두 가지 방법을 살펴보겠습니다.
1. join() 메서드 활용하기
join() 메서드는 문자열이나 튜플의 모든 항목을 하나의 문자열로 연결하는 기능을 제공합니다. 다만 join()은 문자열에만 동작하므로, 먼저 리스트의 각 정수 요소를 문자열로 변환한 뒤 연결해야 합니다. 이를 위해 for 루프와 리스트 컴프리헨션을 사용하여 각 요소를 순회하며 변환할 수 있습니다.
예제
listA = [22,11,34]
# 주어진 리스트
print("Given list A: ", listA)
# 각 요소를 문자열로 변환 후 join으로 연결
res = int("".join([str(i) for i in listA]))
# 결과 출력
print("The integer is : ",res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Given list A: [22, 11, 34] The integer is : 221134
2. map()과 join() 조합하기
리스트 컴프리헨션 대신 map() 함수를 사용하면 코드를 더욱 간결하게 작성할 수 있습니다. map(str, listA)는 리스트의 각 요소를 문자열로 변환해주며, 이후 join()으로 연결하고 마지막에 int() 함수를 적용하면 최종 결과가 정수형이 됩니다.
예제
listA = [22,11,34]
# 주어진 리스트
print("Given list A: ", listA)
# map으로 각 요소를 문자열로 변환 후 join으로 연결
res = int("".join(map(str, listA)))
# 결과 출력
print("The integer is : ",res)실행 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.
Given list A: [22, 11, 34] The integer is : 221134
마무리
두 방법 모두 동일한 결과를 반환하지만, map()을 활용하는 두 번째 방법이 더 간결하고 가독성이 좋아 일반적으로 선호됩니다. 참고로 이 방식은 리스트의 요소가 음수일 경우 의도대로 동작하지 않으므로, 모든 요소가 양의 정수일 때 사용하는 것이 좋습니다.