Ánh xạ
Bài học 2 trên 9 trong khóa học Tạo danh sách bằng cú pháp rút gọn trong Python của Coddy.
Giả sử bạn được cho một danh sách số và muốn tính một chuỗi chứa lập phương của tất cả các số,
nums = [1, 4, 6, 12, 3]
cubes = []
for n in nums:
cubes.append(n ** 3)
print(cubes) # [1 , 16, 36, 144, 9]Với cú pháp rút gọn cho danh sách (list comprehension), bạn có thể viết đoạn code này trên một dòng,
nums = [1, 4, 6, 12, 3]
cubes = [n ** 3 for n in nums]
print(cubes) # [1 , 16, 36, 144, 9]Loại thao tác này được gọi là ánh xạ: áp dụng một hàm cho từng phần tử của danh sách hiện có và tạo ra một danh sách mới chứa kết quả.
Cú pháp như sau,
lst = [expression for item in iterable]lst sẽ chứa một danh sách mới được tạo ra từ thao tác rút gọn danh sách.
Thử thách
DễCho danh sách số nums, giả sử mỗi phần tử là x, hãy tính danh sách mới trong đó mỗi phần tử được tính theo phương trình sau: <strong>x<sup>3</sup>+2*x<sup>2</sup>+5</strong>
Lưu danh sách mới vào biến có tên new_nums.
Tự làm thử
nums = eval(input()) # Đừng thay đổi dòng này
Tất cả bài học trong Tạo danh sách bằng cú pháp rút gọn trong Python
Tự luyện tập: Trình biên dịch Python online