Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
11 mẹo và thủ thuật để viết Code Python hiệu quả hơn
Python là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong nhiều lĩnh vực như phát triển phần mềm, phân tích dữ liệu, trí tuệ nhân tạo và nhiều hơn nữa. Tuy nhiên, không phải ai cũng biết cách tận dụng tối đa các tính năng của Python để viết mã hiệu quả, dễ bảo trì và đúng phong cách "Pythonic."

Bài viết này sẽ cung cấp cho bạn 11 mẹo và thủ thuật đơn giản nhưng hữu ích, giúp bạn nâng cấp kỹ năng viết code của mình. Từ việc tối ưu hóa vòng lặp, xử lý danh sách thông minh, đến cách quản lý bộ nhớ hiệu quả, các mẹo này sẽ mang lại sự khác biệt lớn trong cách bạn lập trình với Python. Hãy cùng tìm hiểu và áp dụng vào thực tiễn!
Mục lục
- 1. Sử dụng enumerate() thay vì range(len()) trong Python
- 2. Dùng List Comprehension thay vì vòng lặp for thông thường trong Python
- 3. Sắp xếp cấu trúc phức tạp bằng hàm sorted() trong Python
- 4. Lưu trữ giá trị duy nhất bằng Set trong Python
- 5. Tiết kiệm bộ nhớ bằng Generator trong Python
- 6. Định nghĩa giá trị mặc định trong Dictionary trong Python
- 7. Đếm các đối tượng bằng collections.Counter trong Python
- 8. Định dạng chuỗi với f-Strings (Python 3.6+) trong Python
- 9. Nối chuỗi bằng .join() trong Python
- 10. Gộp Dictionary với ** (Python 3.5+) trong Python
- 11. Tối giản if-else với x in list trong Python
- Kết bài
1. Sử dụng enumerate()
thay vì range(len())
trong Python
Khi bạn muốn duyệt qua một danh sách và cần cả chỉ số lẫn giá trị hiện tại, nhiều người hay sử dụng cú pháp range(len())
. Tuy nhiên, cách này cồng kềnh hơn so với việc sử dụng hàm enumerate()
.
Ví dụ: ta cần kiểm tra danh sách các số, nếu số nào âm thì chuyển giá trị đó về 0:
Bài viết này được đăng tại [free tuts .net]
1 2 3 4 5 6 7 8 9 10 11 | # Cách cũ (không tối ưu): data = [ 1 , 2 , - 3 , - 4 ] for i in range ( len (data)): if data[i] < 0 : data[i] = 0 # Cách tốt hơn: data = [ 1 , 2 , - 3 , - 4 ] for idx, num in enumerate (data): if num < 0 : data[idx] = 0 |
2. Dùng List Comprehension thay vì vòng lặp for thông thường trong Python
Khi tạo danh sách từ các giá trị tính toán, bạn có thể dùng List Comprehension để rút gọn code. Ví dụ: tạo danh sách chứa bình phương các số từ 0 đến 9:
1 2 3 4 5 6 7 | # Cách cũ: squares = [] for i in range ( 10 ): squares.append(i * i) # Cách tốt hơn: squares = [i * i for i in range ( 10 )] |
Lưu ý:
Không nên lạm dụng List Comprehension nếu chúng làm code khó đọc.
3. Sắp xếp cấu trúc phức tạp bằng hàm sorted()
trong Python
Hàm sorted()
có thể sắp xếp các iterable (list, tuple, dictionary, v.v.) theo thứ tự tăng dần. Để sắp xếp giảm dần, thêm tham số reverse=True
.
Ví dụ:
1 2 | data = ( 3 , 5 , 1 , 10 , 9 ) sorted_data = sorted (data, reverse = True ) # [10, 9, 5, 3, 1] |
Với các iterable phức tạp như danh sách chứa dictionary, bạn có thể sắp xếp dựa vào key cụ thể:
1 2 3 4 5 6 7 | data = [ { "name" : "Max" , "age" : 6 }, { "name" : "Lisa" , "age" : 20 }, { "name" : "Ben" , "age" : 9 } ] sorted_data = sorted (data, key = lambda x: x[ "age" ]) # [{'name': 'Max', 'age': 6}, {'name': 'Ben', 'age': 9}, {'name': 'Lisa', 'age': 20}] |
4. Lưu trữ giá trị duy nhất bằng Set trong Python
Khi cần loại bỏ các phần tử trùng lặp trong danh sách, bạn có thể chuyển nó thành Set.
1 2 | my_list = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 7 , 7 ] my_set = set (my_list) # {1, 2, 3, 4, 5, 6, 7} |
Set cũng hỗ trợ các thao tác tập hợp như giao, hợp, hiệu.
5. Tiết kiệm bộ nhớ bằng Generator trong Python
Thay vì List Comprehension, bạn có thể sử dụng Generator Comprehension để tính toán phần tử theo yêu cầu (lazy evaluation), giúp tiết kiệm bộ nhớ:
1 2 3 4 5 6 7 | import sys my_list = [i for i in range ( 10000 )] print (sys.getsizeof(my_list), "bytes" ) # 87616 bytes my_gen = (i for i in range ( 10000 )) print (sys.getsizeof(my_gen), "bytes" ) # 128 bytes |
Cùng chuyên mục:
Python Regex
Python Concurrency
Tkinter Tutorial
PyQt Tutorial
Python căn bản
Python nâng cao
Django
Matplotlib
Pandas
Numpy
Python function







