Enumerate và Zip
1. Giới thiệu
Tại sao cần học?
2. enumerate() - Đánh số index
2.1 - Vấn đề cần giải quyết
# ❌ CÁCH CŨ - Không tốt
fruits = ["apple", "banana", "cherry"]
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
# ✅ CÁCH TỐT - Dùng enumerate
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")2.2 - Cú pháp
2.3 - Ví dụ cơ bản
2.4 - enumerate() trả về gì?
3. Ví dụ thực tế với enumerate()
Ví dụ 1: Hiển thị menu
Ví dụ 2: Tìm vị trí phần tử
Ví dụ 3: Đánh số dòng file
Ví dụ 4: Tạo dictionary với index
Ví dụ 5: Xử lý list với điều kiện
4. zip() - Kết hợp iterables
4.1 - Vấn đề cần giải quyết
4.2 - Cú pháp
4.3 - Ví dụ cơ bản
4.4 - zip() trả về gì?
5. zip() với độ dài khác nhau
5.1 - zip() dừng ở iterable ngắn nhất
5.2 - Dùng itertools.zip_longest() để lấy hết
6. Ví dụ thực tế với zip()
Ví dụ 1: Tạo dictionary từ 2 lists
Ví dụ 2: Tính tổng từng cột
Ví dụ 3: Unzip (tách tuple)
Ví dụ 4: So sánh 2 lists
Ví dụ 5: Transpose matrix
7. Kết hợp enumerate() và zip()
7.1 - enumerate() với zip()
7.2 - Ví dụ phức tạp hơn
8. Ví dụ tổng hợp
Ví dụ 1: Quản lý sản phẩm
Ví dụ 2: Tìm học sinh điểm cao nhất
Ví dụ 3: Parallel iteration với nhiều lists
9. So sánh enumerate() vs zip()
Đặc điểm
enumerate()
zip()
10. Tips và Best Practices
1. Tránh dùng range(len())
2. Dùng zip() khi kết hợp lists
3. Unpacking với *
4. Cẩn thận với độ dài khác nhau
5. enumerate() với string
11. Bài tập thực hành
Bài 1: Tìm vị trí tất cả các số chẵn
Bài 2: Tạo bảng nhân
Bài 3: Kết hợp enumerate() và zip()
Bài giảng trên YouTube
Last updated