Python cung cấp nhiều tính năng giúp code ngắn gọn, sạch đẹp ("Pythonic"). Dưới đây là 10 thủ thuật thường dùng.
1. Đảo ngược list: reverse() hoặc slicing
# In-place lst = ["Shriya", "Lavina", "Sampreeti"] lst.reverse() print(lst) # ['Sampreeti', 'Lavina', 'Shriya'] # Tạo list mới (slicing) print(lst[::-1])
2. Unpacking list để in theo thứ tự tùy ý
lst = [1, 2, 3] w, v, t = lst print(v, w, t) # 2 1 3 print(t, v, w) # 3 2 1
3. Generator expression trong hàm
# sum(i for i in range(10)) thay vì sum([i for i in range(10)]) print(sum(i for i in range(10))) # 45 - tiết kiệm bộ nhớ
4. zip() - Kết hợp nhiều iterable
years = (1999, 2003, 2011, 2017)
months = ("Mar", "Jun", "Jan", "Dec")
days = (11, 21, 13, 5)
print(list(zip(years, months, days)))
# [(1999, 'Mar', 11), (2003, 'Jun', 21), (2011, 'Jan', 13), (2017, 'Dec', 5)]
5. Hoán đổi 2 biến 1 dòng (không cần temp)
x, y = 11, 34 x, y = y, x print(x, y) # 34 11
6. Chuyển vị ma trận (Transpose) với zip(*matrix)
matrix = [[31, 17], [40, 51], [13, 12]] print(list(zip(*matrix))) # [(31, 40, 13), (17, 51, 12)]
7. In chuỗi lặp lại N lần
print("Point" * 3) # PointPointPoint
8. Đảo ngược list/string với slicing [::-1]
print([1, 3, 6, 4, 2][::-1]) # [2, 4, 6, 3, 1]
print("hello"[::-1]) # olleh
9. Tìm ước số của số
n = 32 print([i for i in range(1, n+1) if n % i == 0]) # [1, 2, 4, 8, 16, 32]
10. Kiểm tra bộ nhớ biến với sys.getsizeof()
import sys a, b, c, d = "abcde", "xy", 2, 15.06 print(sys.getsizeof(a)) # 38 bytes print(sys.getsizeof(b)) # 35 bytes print(sys.getsizeof(c)) # 24 bytes print(sys.getsizeof(d)) # 24 bytes
Kết luận
Những thủ thuật này giúp code Python ngắn gọn, hiệu quả và tận dụng được các tính năng đặc trưng của ngôn ngữ.