Giới thiệu
Trở thành một lập trình viên Python chuyên nghiệp không chỉ là viết mã hoạt động - mà còn là viết mã sạch, hiệu quả và mang phong cách Python. Bài viết này sẽ cung cấp cho bạn 11 mẹo Python thiết yếu giúp bạn nâng cao kỹ năng lập trình của mình.
1. Sử dụng enumerate
để Lấy Chỉ Số và Giá Trị
Khi lặp qua một danh sách, nhiều lập trình viên vẫn dựa vào range(len(data))
. Điều này hoạt động nhưng không thực sự mang phong cách Python.
Ví dụ (không được khuyến nghị):
python
data = [1, 2, -3, -4]
for i in range(len(data)):
if data[i] < 0:
data[i] = 0
Kết quả sẽ là:
python
# data trở thành [1, 2, 0, 0]
Một cách tốt hơn là sử dụng enumerate
, điều này giúp bạn có cả chỉ số và giá trị ngay lập tức:
python
data = [1, 2, -3, -4]
for idx, num in enumerate(data):
if num < 0:
data[idx] = 0
Kết quả sẽ là:
python
# data trở thành [1, 2, 0, 0]
2. Hiểu Về Gán: Alias và Bản Sao
Trong Python, việc gán một biến không sao chép đối tượng - nó tạo ra một alias.
python
a = [1, 2, 3, 4, 5]
b = a
b[4] = 7
print(a) # [1, 2, 3, 4, 7]
Cả a
và b
đều trỏ đến cùng một đối tượng. Nếu bạn muốn tạo một bản sao:
python
b = a.copy() # hoặc b = a[:]
b[4] = 7
print(a) # [1, 2, 3, 4, 5]
print(b) # [1, 2, 3, 4, 7]
3. Sử Dụng F-strings Để Định Dạng Chuỗi
Kể từ Python 3.6, f-strings là cách đọc nhất và hiệu quả nhất:
python
first_name = "Lily"
age = 18
print(f"Chào, tôi là {first_name} và tôi {age} tuổi!")
4. Sử Dụng Generators Để Tiết Kiệm Bộ Nhớ
List comprehensions tải tất cả vào bộ nhớ, trong khi generators tạo ra giá trị theo yêu cầu.
python
import sys
my_list = [i for i in range(10000)]
print(sys.getsizeof(my_list))
my_gen = (i for i in range(10000))
print(sys.getsizeof(my_gen))
Generators tiết kiệm bộ nhớ, nhưng chỉ có thể được tiêu thụ một lần.
5. Truy Cập Từ Điển An Toàn Với .get()
Truy cập trực tiếp có nguy cơ gây ra KeyError
:
python
my_dict = {'item': 'bóng đá', 'price': 10.00}
count = my_dict.get('count', 0)
print(count) # 0
6. Sử Dụng zip
Để Lặp Song Song
python
names = ['Amy', 'Ben', 'Clara']
scores = [85, 80, 95]
for name, score in zip(names, scores):
print(f"{name}: {score}")
7. List Comprehensions Để Vòng Lặp Ngắn Gọn
Lọc và biến đổi trong một dòng:
python
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
evens = [num for num in numbers if num % 2 == 0]
processed = [num * 2 if num % 2 == 0 else num for num in numbers]
8. Đơn Giản Hóa Đếm Với defaultdict
python
from collections import defaultdict
words = ['táo', 'chuối', 'táo', 'cam']
word_count = defaultdict(int)
for word in words:
word_count[word] += 1
9. Xóa các Phần Tử Trùng Lặp Từ Danh Sách
Sử dụng set
để đảm bảo tính duy nhất:
python
a = [1, 1, 2, 3, 4, 5, 5]
unique = list(set(a))
Hoặc duy trì thứ tự:
python
ordered_unique = list(dict.fromkeys(a))
10. Nối Chuỗi Một Cách Hiệu Quả
python
list_of_strings = ["Xin chào", "bạn", "hữu"]
my_string = " ".join(list_of_strings)
print(my_string)
11. Đảo Ngược Một Từ Điển Trong Một Dòng
python
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {v: k for k, v in dict1.items()}
print(dict2) # {1: 'a', 2: 'b', 3: 'c'}
Những Lưu Ý Cuối Cùng: Công Cụ Cũng Quan Trọng
Những mẹo Python này có thể giúp mã của bạn trở nên sạch hơn và mang phong cách Python. Tuy nhiên, năng suất không chỉ là về các mẹo lập trình - mà còn là có những công cụ phù hợp.
Quản lý nhiều phiên bản Python trên các dự án khác nhau có thể rất khó khăn. Đó là lúc ServBay phát huy tác dụng. Nó cho phép bạn cài đặt Python chỉ với một cú nhấp chuột và chuyển đổi giữa các phiên bản dễ dàng. Rất phù hợp cho việc làm việc với các phụ thuộc cũ hoặc thử nghiệm các tính năng mới.
Một công cụ tốt có thể tiết kiệm cho bạn hàng giờ và giúp bạn tập trung vào việc viết mã tốt hơn. 🚀