언패킹의 용례 중에서 또 한 가지 쓸모 있는 것으로 for 루프 또는 그와 비슷한 다른 요소(컴프리헨션(comprehension)이나 제너레이터 식)의 대상인 리스트의 원소를 언패킹하는 것이 있다(Better way 27: ‘map과 filter 대신 컴프리헨션을 사용하라’ 참고). 비교를 위해 먼저 언패킹을 사용하지 않고 간식이 들어 있는 list에 대해 이터레이션(iteration)하는 코드를 살펴보자.
snacks = [('베이컨', 350), ('도넛', 240), ('머핀', 190)] for i in range(len(snacks)): item = snacks[i] name = item[0] calories = item[1] print(f'#{i+1}: {name} 은 {calories} 칼로리입니다.') >>> #1: 베이컨 은 350 칼로리입니다. #2: 도넛 은 240 칼로리입니다. #3: 머핀 은 190 칼로리입니다.
잘 작동하지만 잡음이 많다. snacks 구조 내부의 깊숙한 곳에 있는 데이터를 인덱스로 찾으려면 코드가 길어진다. 다음 예제는 enumerate 내장 함수(Better way 7: ‘range보다는 enumerate를 사용하라’ 참고)와 언패킹을 사용해 똑같은 출력을 만들었다.