Bài 9.4 - Ôn tập list Python nâng cao
Free
Khóa học Python từ Cơ bản đến Nâng cao
Chương 1: Làm quen với Python + Ôn tập I/O, biến, kiểu dữ liệu
Chương 2: Câu lệnh rẽ nhánh, vòng lặp, hàm
Chương 3: Xử lý chuỗi và danh sách nâng cao
Chương 4: Bài kiểm tra Python cơ bản + sửa bài
Chương 5: Duyệt mảng, tìm max/min, đếm
Chương 6: Thuật toán sắp xếp
Chương 7: Prefix Sum + Two Pointers
Chương 8: Backtracking cơ bản
Chương 9: Ôn tập thuật toán cơ bản + kiểm tra
Chương 10: Dynamic Programming cơ bản
Chương 11: Đệ quy và DP nâng cao
Chương 12: Đồ thị cơ bản – DFS, BFS
Chương 13: Đồ thị nâng cao – Dijkstra + Topo sort
Chương 14: Cây – Tree traversal + LCA
Chương 15: Bitmask – Kỹ thuật đại số
Chương 16: Số học + Modular Arithmetic
Chương 17: Class
Chương 18: File và Exception

Bài 9.4 - Ôn tập list Python nâng cao
List (danh sách) là kiểu dữ liệu vô cùng linh hoạt và được sử dụng rộng rãi trong Python. Trong bài này, chúng ta sẽ ôn tập các kỹ thuật nâng cao hơn với list để có thể xử lý dữ liệu một cách hiệu quả hơn.
1. Slicing nâng cao
Slicing cho phép bạn lấy một phần của danh sách dựa trên chỉ số.
numbers = [0, 1, 2, 3, 4, 5, 6]
print(numbers[2:5]) # [2, 3, 4]
print(numbers[:3]) # [0, 1, 2]
print(numbers[::2]) # [0, 2, 4, 6]
print(numbers[::-1]) # [6, 5, 4, 3, 2, 1, 0]
Slicing rất tiện để thao tác nhanh với chuỗi và danh sách.
2. List comprehension (cực kỳ quan trọng)
squares = [x*x for x in range(1, 6)]
print(squares) # [1, 4, 9, 16, 25]
Thêm điều kiện:
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]
List comprehension giúp viết code ngắn gọn, dễ đọc.
3. Duyệt danh sách với enumerate
và zip
fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits):
print(i, fruit)
names = ["An", "Bình", "Cường"]
scores = [85, 90, 95]
for name, score in zip(names, scores):
print(name, ":", score)
enumerate
để lấy cả chỉ số,zip
để gộp nhiều danh sách cùng lúc.
4. Hàm sorted()
và sắp xếp theo điều kiện
nums = [5, 2, 9, 1]
print(sorted(nums)) # [1, 2, 5, 9]
print(sorted(nums, reverse=True)) # [9, 5, 2, 1]
Sắp xếp theo độ dài chuỗi:
words = ["apple", "cat", "banana"]
print(sorted(words, key=len)) # ['cat', 'apple', 'banana']
5. Một số hàm hữu ích khác với list
lst = [3, 1, 4, 1, 5]
print(len(lst)) # Số phần tử
print(max(lst)) # Phần tử lớn nhất
print(min(lst)) # Phần tử nhỏ nhất
print(sum(lst)) # Tổng các phần tử
Đây là các hàm tích hợp có sẵn, chạy rất nhanh và gọn.
6. Xử lý danh sách 2 chiều
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for val in row:
print(val, end=" ")
print()
List comprehension 2 chiều:
squared = [[x*x for x in row] for row in matrix]
print(squared)
7. Xoá, thêm phần tử nâng cao
lst = [1, 2, 3, 4, 5]
# Xoá phần tử ở vị trí 2
del lst[2]
print(lst) # [1, 2, 4, 5]
# Xoá tất cả số chẵn
lst = [x for x in lst if x % 2 != 0]
print(lst) # [1, 5]
# Thêm nhiều phần tử
lst.extend([6, 7])
print(lst) # [1, 5, 6, 7]
8. Ví dụ tổng hợp
Bài toán: Cho danh sách các số, giữ lại bình phương các số chẵn và sắp xếp giảm dần.
nums = [1, 2, 3, 4, 5, 6]
result = sorted([x*x for x in nums if x % 2 == 0], reverse=True)
print(result) # [36, 16, 4]
Tổng kết
- Danh sách trong Python là công cụ cực mạnh, dùng tốt sẽ giúp bạn viết code ngắn hơn, hiệu quả hơn và dễ mở rộng hơn.
- Các kỹ thuật như list comprehension, zip, enumerate, sort có điều kiện, và duyệt 2 chiều rất thường gặp trong thực tế và phỏng vấn.
Khóa học liên quan

3300000
4500000
Học Ngay
Comments