Hàm map để lặp các đối tượng trong Python

Giả sử chúng ta có hàm square để tính bình phương các số. Và có một danh sách, mà các phần tử của nó cần áp dụng hàm này:

pythondef square(num):
  return num ** 2

lst = [2, 3, 6, 8, 15]

Trong Python để giải quyết nhiệm vụ này, có thể sử dụng hàm đặc biệt map. Nó nhận làm tham số là một hàm và một danh sách, mà các phần tử của nó cần được áp dụng hàm đó. Hãy sử dụng map để giải quyết ví dụ:

pythonres = map(square, lst)
print(res)

Mỗi danh sách cũng như bất kỳ đối tượng phức tạp nào đều chiếm nhiều chỗ trong bộ nhớ hệ thống của Python. Vì vậy để tiết kiệm tài nguyên, sau khi thực thi mã sẽ trả về không phải một danh sách mới, mà là một đối tượng map có thể lặp đặc biệt:

python<map object at 0x000001F16674BA00>

Hãy lặp qua nó bằng vòng lặp:

pythonfor el in res:
  print(el)

Kết quả sẽ hiển thị tất cả các phần tử của danh sách mới:

python4
9
36
64
225

Để tạo một danh sách mới từ đối tượng map, cần áp dụng hàm list vào nó:

pythonlst = [2, 3, 6, 8, 15]
res = map(square, lst)

Kết quả sẽ hiển thị danh sách sau:

python[4, 9, 36, 64, 225]

Ngoài ra khi làm việc với hàm map, trong tham số đầu tiên có thể đặt một hàm lambda. Hãy viết lại ví dụ trước với sự trợ giúp của hàm lambda:

pythonres = map(lambda num: num ** 2, lst, lst)
print(list(res))
Задание 1

Viết lại mã sau qua hàm lambda:

pythondef func(num):
  return num + 1

lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Задание 2

Viết lại mã sau qua hàm lambda:

pythondef func(txt):
  return txt[::-1]

lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))