map() 함수
이제 mapping을 직접 해 볼까요?
zip()이 어떻게 동작하는지 기억하시나요? 주어진 이터러블들을 합쳐서 같은 인덱스의 항목들이 하나의 튜플에 담기게 합니다. 또한 결과는 가장 짧은 이터러블의 길이에 맞춰집니다.
여러분의 과제는 리스트, 문자열, 튜플 등 다양한 이터러블을 가변 개수로 받는 *args를 사용해 직접 my_zip() 함수를 정의하는 것입니다. zip 객체를 반환하는 대신, my_zip()은 미리 튜플들의 리스트를 반환해야 합니다.
참고: 실제로는 args에 이터러블이 들어 있는지 먼저 확인해야 하지만, 여기서는 간단히 생략하겠습니다.
이 연습은 강의의 일부입니다
Python으로 코딩 인터뷰 문제 연습하기
연습 안내
map()을 사용해args로부터 이터러블의lengths를 구하고, 최소 길이를 찾으세요.- 반복문 안에서, 같은 인덱스
i의 원소들을 가져오기 위해map()으로mapping을 생성하세요. mapping을 튜플로 변환해tuple_list에 추가하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def my_zip(*args):
# Retrieve Iterable lengths and find the minimal length
lengths = list(map(____, ____))
min_length = ____
tuple_list = []
for i in range(0, min_length):
# Map the elements in args with the same index i
mapping = map(____, args)
# Convert the mapping and append it to tuple_list
tuple_list.append(____(____))
return tuple_list
result = my_zip([1, 2, 3], ['a', 'b', 'c', 'd'], 'DataCamp')
print(result)