Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 리스트를 '리스트를 요소로 갖는 튜플'로 변환하는 방법

Python 프로그래밍에서 하나의 데이터 컨테이너를 다른 형태로 변환하는 작업은 매우 자주 요구됩니다. 이번 글에서는 리스트(list)를 튜플(tuple)로 변환하되, 튜플의 각 요소가 개별적인 리스트가 되도록 만드는 방법을 살펴보겠습니다.

tuple() 함수와 리스트 컴프리헨션 활용

가장 직관적인 방법은 tuple 함수를 리스트에 바로 적용하는 것입니다. 다만 단순히 변환만 하면 각 요소가 그대로 유지되므로, for 반복문을 사용해 각 요소를 대괄호([])로 감싸 리스트 형태로 만들어 주어야 합니다.

예제 코드

listA = ["Mon", 2, "Tue", 3]
# 주어진 리스트
print("Given list A: ", listA)
# 리스트 컴프리헨션으로 각 요소를 리스트로 감싼 후 튜플 변환
res = tuple([i] for i in listA)
# 결과 출력
print("The tuple is : ", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Given list A: ['Mon', 2, 'Tue', 3]
The tuple is : (['Mon'], [2], ['Tue'], [3])

출력 결과를 보면 원래 리스트의 각 요소('Mon', 2, 'Tue', 3)가 각각 하나짜리 리스트(['Mon'], [2], ['Tue'], [3])로 변환된 뒤, 이들이 하나의 튜플로 묶인 것을 확인할 수 있습니다.

zip()과 map() 함수 조합 활용

동일한 결과는 zip과 map 함수를 조합해서도 얻을 수 있습니다. map 함수에 list를 적용하면 입력된 각 요소가 리스트로 변환되며, 마지막에 tuple 함수가 이 결과 전체를 튜플로 감싸 줍니다. 여기서 zip(listA)처럼 인자를 하나만 넘기면 각 요소를 1개짜리 튜플로 묶어 주는 역할을 하게 됩니다.

예제 코드

listA = ["Mon", 2, "Tue", 3]
# 주어진 리스트
print("Given list A: ", listA)
# zip과 map을 활용한 변환
res = tuple(map(list, zip(listA)))
# 결과 출력
print("The tuple is : ", res)

실행 결과

위 코드 역시 앞선 예제와 동일한 결과를 출력합니다.

Given list A: ['Mon', 2, 'Tue', 3]
The tuple is : (['Mon'], [2], ['Tue'], [3])

정리

두 방법 모두 동일한 결과를 만들어 내지만, 상황에 따라 선택 기준이 달라질 수 있습니다. 리스트 컴프리헨션 방식은 코드가 직관적이고 가독성이 좋아 초보자에게 적합하며, zip과 map을 활용한 방식은 함수형 스타일을 선호하거나 여러 iterable을 함께 다뤄야 하는 상황에서 확장성이 뛰어납니다. 데이터의 각 요소를 개별 리스트로 분리해야 하는 후속 처리(예: 행렬 연산, 배치 처리 등)가 필요하다면 이번 글에서 소개한 두 가지 기법을 상황에 맞게 활용해 보시기 바랍니다.