*와 zip으로 'unzip' 하기
이제 zip()을 사용하는 방법과 zip 객체에서 값을 출력하는 방법을 아셨네요. 훌륭합니다!
zip()을 조금 더 다뤄 보겠습니다. zip()의 반대를 수행하는 별도의 unzip 함수는 없습니다. 하지만 *의 도움을 받아 zip()을 다시 활용하면 함께 묶인 항목을 되돌릴 수 있습니다. *는 리스트나 튜플 같은 iterable을 함수 호출에서 위치 인수로 풀어 줍니다.
이번 연습에서는 zip() 호출에서 *를 사용해, zip()이 만들어 낸 튜플들을 풀어 보겠습니다.
문자열로 이루어진 두 개의 튜플 mutants와 powers가 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python 도구 상자
연습 안내
mutants와powers를 이 순서로zip()에 전달해zip객체를 만들고 결과를z1에 할당하세요.print()호출에서*연산자를 사용해z1의 튜플들을 위치 인수로 풀어 출력하세요.- 바로 앞의
print()호출로z1의 요소가 소진되었으므로, 앞서 정의한zip객체를 다시 만들고 결과를 다시z1에 할당하세요. zip()호출에서*연산자를 사용해z1의 튜플들을 위치 인수로 풀어 'unzip' 하세요. 그 결과를 차례대로result1과result2에 할당하세요.- 마지막
print()문은result1을mutants와,result2를powers와 비교한 결과를 출력합니다. 풀어 낸result1과result2가 각각mutants와powers와 동일한지 확인하려면 "Submit Answer"를 클릭하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create a zip object from mutants and powers: z1
z1 = ____
# Print the tuples in z1 by unpacking with *
print(____)
# Re-create a zip object from mutants and powers: z1
z1 = ____
# 'Unzip' the tuples in z1 by unpacking with * and zip(): result1, result2
result1, result2 = ____
# Check if unpacked tuples are equivalent to original tuples
print(result1 == mutants)
print(result2 == powers)