Hàm map()
Cùng thực hành mapping nào!
Bạn còn nhớ zip() hoạt động thế nào không? Nó gộp các Iterable được truyền vào sao cho các phần tử có cùng chỉ số sẽ nằm trong cùng một tuple. Hơn nữa, đầu ra bị giới hạn bởi Iterable ngắn nhất.
Nhiệm vụ của bạn là định nghĩa hàm my_zip() của riêng bạn với *args biểu diễn số lượng Iterable thay đổi, ví dụ: list, string, tuple, v.v. Thay vì trả về một đối tượng zip, my_zip() cần trả về sẵn một list các tuple.
Lưu ý: lẽ ra cần kiểm tra args xem có chứa các Iterable hay không. Nhưng để đơn giản, ta sẽ bỏ qua bước đó.
Bài tập này là một phần của khóa học
Luyện tập câu hỏi phỏng vấn lập trình bằng Python
Hướng dẫn bài tập
- Trích xuất Iterable
lengthstừargsbằngmap()và tìm độ dài nhỏ nhất. - Trong vòng lặp, tạo
mappingbằngmap()để lấy các phần tử trongargscó cùng chỉ sối. - Chuyển
mappingthành một tuple và thêm nó vàotuple_list.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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)