Python에서 튜플(tuple)은 한 번 생성하면 요소를 변경할 수 없는 불변(immutable) 자료형입니다. 반면 리스트(list)는 요소를 자유롭게 추가, 수정, 삭제할 수 있는 가변(mutable) 자료형이기 때문에, 데이터를 조작해야 하는 상황이라면 튜플을 리스트로 변환하는 것이 유용합니다.
튜플을 리스트로 변환하는 가장 간단한 방법은 list()> 생성자를 사용하는 것입니다.
기본 예제
x = (1, 2, 3) y = list(x) print(y)
출력 결과
[1, 2, 3]
중첩된 튜플을 1차원 리스트로 변환하기
만약 여러 겹으로 중첩된(nested) 튜플을 하나의 평탄한(flat) 리스트로 만들고 싶다면, 리스트 컴프리헨션(list comprehension)을 활용할 수 있습니다.
z = ((1, 2, 3), (4, 5)) y = [a for b in z for a in b] print(y)
출력 결과
[1, 2, 3, 4, 5]
위 코드에서 [a for b in z for a in b]는 중첩 반복문과 동일하게 동작합니다. 즉, 바깥쪽 튜플 z의 각 하위 튜플 b를 순회하고, 다시 그 안의 각 요소 a를 새 리스트에 담아 하나의 1차원 리스트를 만들어 줍니다.
정리하면, 단순한 변환에는 list()> 생성자를, 중첩 구조의 평탄화에는 리스트 컴프리헨션을 사용하는 것이 Python에서 가장 관용적(idiomatic)인 방법입니다.