프로그램의 요구 사항에 따라 리스트에 담긴 값들을 여러 변수에 한 번에 할당해야 하는 경우가 종종 있습니다. 이렇게 할당된 변수들은 프로그램의 나머지 부분에서 다양한 계산에 활용될 수 있습니다. 이 글에서는 파이썬에서 리스트의 특정 값들을 여러 변수에 동시에 할당하는 여러 가지 방법을 살펴보겠습니다.
for 문과 리스트 컴프리헨션 활용하기
for 루프를 사용하면 주어진 리스트의 요소들을 순회하면서 원하는 순서대로 변수에 할당할 수 있습니다. 이때 변수에 할당할 값들의 인덱스 위치를 직접 지정해 주어야 합니다.
예제
listA = ['Mon', ' 2pm', 1.5, '11 miles']
# 주어진 리스트
print("Given list A: " ,listA)
# for in 사용
vDay, vHrs, vDist = [listA[i] for i in (0, 2, 3)]
# 결과 출력
print ("The variables : " + vDay + ", " + str(vHrs) + ", " +vDist)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Given list A: ['Mon', ' 2pm', 1.5, '11 miles'] The variables : Mon, 1.5, 11 miles
itemgetter 함수 활용하기
operator 모듈의 itemgetter 함수는 지정된 인덱스에 해당하는 항목들을 한 번에 가져올 수 있습니다. 가져온 값들을 별도의 처리 없이 곧바로 변수에 할당하면 되므로 코드가 간결해집니다.
예제
from operator import itemgetter
listA = ['Mon', ' 2pm', 1.5, '11 miles']
# 주어진 리스트
print("Given list A: " ,listA)
# itemgetter 사용
vDay, vHrs, vDist = itemgetter(0, 2, 3)(listA)
# 결과 출력
print ("The variables : " + vDay + ", " + str(vHrs) + ", " +vDist)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Given list A: ['Mon', ' 2pm', 1.5, '11 miles'] The variables : Mon, 1.5, 11 miles
itertools.compress 함수 활용하기
itertools 모듈의 compress 함수는 불리언(Boolean) 값을 이용해 인덱스 위치에 따라 요소를 선택합니다. 예를 들어 인덱스 0, 2, 3의 값을 가져오고 싶다면 compress 함수에 (1, 0, 1, 1)처럼 해당 위치에 1을 표시한 시퀀스를 전달하고, 필터링된 값을 변수에 할당하면 됩니다.
예제
from itertools import compress
listA = ['Mon', ' 2pm', 1.5, '11 miles']
# 주어진 리스트
print("Given list A: " ,listA)
# compress 사용
vDay, vHrs, vDist = compress(listA, (1, 0, 1, 1))
# 결과 출력
print ("The variables : " + vDay + ", " + str(vHrs) + ", " +vDist)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Given list A: ['Mon', ' 2pm', 1.5, '11 miles'] The variables : Mon, 1.5, 11 miles
마무리
지금까지 파이썬에서 리스트의 값을 여러 변수에 한 번에 할당하는 세 가지 방법을 알아보았습니다. 리스트 컴프리헨션은 인덱스를 유연하게 조합할 수 있고, itemgetter는 간결한 문법으로 성능이 좋으며, compress는 불리언 마스크 기반으로 직관적인 선택이 가능합니다. 상황에 맞는 방법을 선택하여 코드의 가독성과 효율성을 높여 보세요.