⚡ List Comprehension – Viết gọn mà rõ
Tư duy ngắn gọn
List comprehension giống như công thức pha chế: lấy nguyên liệu (for), lọc (if), rồi chế bi ến (biểu thức).
🍳 Cú pháp cơ bản
# [expression for item in iterable if condition]
squares = [n * n for n in range(6)] # [0, 1, 4, 9, 16, 25]
evens = [n for n in range(10) if n % 2 == 0] # [0, 2, 4, 6, 8]
🧹 Làm sạch dữ liệu
raw_data = [" xin ", " chao", "ban "]
clean_data = [s.strip() for s in raw_data] # ['xin', 'chao', 'ban']
🧭 Lồng nhau (cẩn thận readability)
matrix = [[1, 2], [3, 4], [5, 6]]
flatten = [x for row in matrix for x in row] # [1,2,3,4,5,6]
🧰 Set & Dict comprehension
numbers = [1, 2, 2, 3]
unique_doubles = {n * 2 for n in numbers} # {2, 4, 6}
square_mapping = {n: n * n for n in range(4)} # {0:0, 1:1, 2:4, 3:9}
🚨 Lưu ý quan trọng
- Đừng nhồi nhét quá nhiều logic → khó đọc. Ưu tiên rõ ràng.
- Dùng biến tên có nghĩa; tránh dùng một chữ.
- Tránh side-effects trong expression.
🧪 Bài tập nhanh
- Tạo danh sách bình phương của số lẻ từ 1..20.
- Cho danh sách chuỗi, tạo dict
{chuoi: độ dài}
. - Làm phẳng danh sách 3 chiều
data = [[[1],[2]], [[3],[4]]]
.
👉 Dùng list comprehension để xử lý dữ liệu đầu vào trong các dự án (ví dụ chuẩn hoá danh sách email, lọc ký tự hợp lệ...).
sidebar_position: 12 title: "✨ List Comprehension - Cú Pháp Pythonic Siêu Mạnh" description: "Học list comprehension trong Python: cú pháp ngắn gọn, hiệu quả cao, và rất Pythonic. Biến code dài thành một dòng!" keywords: ["python", "list comprehension", "pythonic", "efficient", "one-liner", "functional programming", "cú pháp ngắn gọn"]
✨ List Comprehension - Cú Pháp Pythonic Siêu Mạnh
✨ Ví Dụ Dễ Hiểu
Hãy tưởng tượng List Comprehension như một máy biến đổi siêu tốc! Thay vì phải viết nhiều dòng code để tạo danh sách, bạn chỉ cần một dòng là có ngay kết quả! Giống như có một phù thủy biến đổi mọi thứ trong nháy mắt!
🤔 List Comprehension Là Gì?
List Comprehension là cách viết ngắn gọn và hiệu quả để tạo danh sách mới từ danh sách cũ. Thay vì viết vòng lặp dài, bạn có thể tạo danh sách chỉ trong một dòng code!