Những Tính Năng Ẩn Của Python Mà Ít Ai Biết

0
Dịch vụ dạy kèm gia sư lập trình

Python không chỉ là ngôn ngữ lập trình phổ biến cho AI, phát triển web, hay tự động hóa mà còn chứa đựng nhiều tính năng ẩn giúp tăng hiệu suất và sự linh hoạt trong mã nguồn. Những tính năng này có thể ít được biết đến nhưng có giá trị không ngờ, đặc biệt khi bạn muốn viết code ngắn gọn, dễ đọc và hiệu quả hơn.

Trong bài viết này, chúng ta sẽ cùng khám phá những tính năng “bí ẩn” của Python mà chắc hẳn nhiều lập trình viên vẫn chưa từng nghe qua. Hãy cùng bắt đầu hành trình nâng cao kỹ năng lập trình Python của bạn nhé!

1. Dấu Gạch Dưới (_) – Ký Hiệu Quyền Năng Trong Python

Dấu gạch dưới có nhiều công dụng đặc biệt trong Python, từ bỏ qua biến cho đến cải thiện cấu trúc mã. Đây là một tính năng nhỏ nhưng mạnh mẽ!

Sử dụng Dấu Gạch Dưới để Bỏ Qua Biến

Trong Python, dấu gạch dưới có thể được dùng để bỏ qua biến mà không cần đặt tên riêng. Ví dụ khi bạn cần lấy giá trị đầu tiên và cuối cùng của một danh sách mà không quan tâm đến các giá trị ở giữa:

first, *_ , last = [1, 2, 3, 4, 5]
print(first)  # Output: 1
print(last)   # Output: 5

Dùng Dấu Gạch Dưới Để Lặp

Trong vòng lặp mà bạn không quan tâm đến chỉ mục, hãy dùng dấu gạch dưới _ để tiết kiệm bộ nhớ.

for _ in range(5):
    print("VNTALKING loves Python!")

2. List Comprehensions Lồng Nhau – Tạo Ra Các Danh Sách Tối Ưu

List Comprehensions là một trong những tính năng giúp bạn viết code ngắn gọn, dễ đọc và dễ bảo trì hơn. Nhưng bạn có biết rằng List Comprehensions còn có thể được lồng nhau để tạo ra các danh sách phức tạp hơn?

matrix = [[j for j in range(3)] for i in range(3)]
print(matrix)
# Output: [[0, 1, 2], [0, 1, 2], [0, 1, 2]]

3. Module collections và Những Công Cụ Hiệu Quả

Python cung cấp module collections với nhiều tính năng mạnh mẽ để làm việc với dữ liệu. Một số trong các lớp của collections như Counter, deque, và defaultdict rất hữu ích.

Sử dụng Counter Để Đếm Phần Tử

Counter giúp đếm số lần xuất hiện của các phần tử trong một chuỗi hoặc danh sách một cách dễ dàng.

from collections import Counter

data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
counter = Counter(data)
print(counter)  # Output: Counter({'apple': 3, 'banana': 2, 'orange': 1})

Sử dụng deque Để Thao Tác Danh Sách Hai Chiều

Deque là một loại danh sách tối ưu hóa cho việc thêm/xóa phần tử ở hai đầu.

from collections import deque

d = deque()
d.append('apple')
d.appendleft('banana')
print(d)  # Output: deque(['banana', 'apple'])

4. Generator Expressions – Tạo Ra Chuỗi Dữ Liệu Không Giới Hạn

Đôi khi bạn chỉ cần tạo ra các phần tử khi cần thiết thay vì lưu toàn bộ danh sách trong bộ nhớ. Với Generator Expressions, bạn có thể giảm thiểu lượng tài nguyên cần dùng.

gen_exp = (x*x for x in range(10**6))
print(sum(gen_exp))  # Tính tổng của các bình phương

Generator expressions cho phép Python tạo ra từng giá trị một, tiết kiệm bộ nhớ đáng kể khi xử lý dữ liệu lớn.

5. with Context Manager – Đơn Giản Hóa Quản Lý Tài Nguyên

Context Manager giúp quản lý tài nguyên hiệu quả hơn, đặc biệt khi làm việc với file, socket, hoặc bất kỳ tài nguyên nào cần đóng/mở.

with open('vntalking_blog.txt', 'w') as file:
    file.write("Python tips are awesome!")

Context Manager đảm bảo rằng tài nguyên sẽ được đóng sau khi sử dụng, giúp giảm nguy cơ lỗi.

Kết luận

Python không chỉ có cú pháp dễ học mà còn chứa đựng vô vàn công cụ giúp tối ưu hóa hiệu suất. Những tính năng ẩn này giúp mã nguồn ngắn gọn, dễ đọc, và nâng cao năng suất. Hãy dành thời gian thử nghiệm từng tính năng và ứng dụng chúng vào dự án của bạn!

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcTạo API Với Python Flask: Framework Nhẹ Mà Mạnh
Bài tiếp theoBắt Đầu Với Python và Machine Learning: Đâu Là Con Đường Tốt Nhất?
Sơn Dương
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Thông báo