Python là một trong những ngôn ngữ phổ biến nhất trên toàn thế giới. Ngày nay nó đang được sử dụng trong lập trình cạnh tranh cũng vì cú pháp đơn giản và thư viện phong phú của nó. Hầu hết chúng ta có lẽ đã bắt đầu viết mã với python. Lúc đầu, mọi thứ diễn ra đơn giản và dễ dàng. Nhưng trong khi giải một bài toán khó về thuật toán, hầu hết chúng ta đều mắc phải
L = [i for i in range [1, 1000] if i%3 == 0]
2. Tuy nhiên, đó không phải là vấn đề của trăn; . Tôi không nói rằng ngôn ngữ không chậm, nhưng nếu một lập trình viên viết một chương trình hiệu quả, chắc chắn nó sẽ nhận được L = [i for i in range [1, 1000] if i%3 == 0]
3. Dưới đây là một số mẹo để tăng tốc chương trình python của bạnSử dụng cấu trúc dữ liệu thích hợp
Việc sử dụng cấu trúc dữ liệu phù hợp có ảnh hưởng đáng kể đến thời gian chạy. Python có danh sách, bộ dữ liệu, bộ và từ điển dưới dạng cấu trúc dữ liệu tích hợp. Tuy nhiên, hầu hết mọi người sử dụng danh sách trong mọi trường hợp. Nhưng đó không phải là một sự lựa chọn đúng đắn. Sử dụng cấu trúc dữ liệu phù hợp tùy thuộc vào nhiệm vụ của bạn. Đặc biệt sử dụng tuple thay vì danh sách. Bởi vì lặp qua tuple dễ hơn lặp qua danh sách
Giảm việc sử dụng vòng lặp for
Vì vòng lặp for là động trong python nên mất nhiều thời gian hơn vòng lặp while. Vì vậy, hãy sử dụng vòng lặp while thay vì vòng lặp for
Sử dụng hiểu danh sách
Không sử dụng bất kỳ kỹ thuật nào khác nếu bạn có thể sử dụng khả năng hiểu danh sách. Ví dụ: đây là mã để liệt kê tất cả các số từ 1 đến 1000 là bội số của 3
L = []
for i in range [1, 1000]:
if i%3 == 0:
L.append [i]
Sử dụng hiểu danh sách, nó sẽ là
L = [i for i in range [1, 1000] if i%3 == 0]
Khả năng hiểu danh sách hoạt động nhanh hơn so với sử dụng phương thức chắp thêm
Sử dụng nhiều bài tập
Không gán các biến như thế này
a = 2
b = 3
c = 5
d = 7
Thay vào đó, hãy gán các biến như thế này
a, b, c, d = 2, 3, 5, 7
Không sử dụng biến toàn cục
Python có từ khóa
L = [i for i in range [1, 1000] if i%3 == 0]
4 để khai báo biến toàn cục. Nhưng các biến toàn cục mất nhiều thời gian hơn trong quá trình hoạt động so với biến cục bộ. Vì vậy, không sử dụng biến toàn cục nếu không cần thiếtSử dụng chức năng thư viện
Không viết chức năng của bạn [thủ công] nếu nó đã có trong thư viện. Các hàm thư viện có hiệu quả cao và có thể bạn sẽ không thể viết mã với hiệu quả đó
Trong python, bạn có thể nối các chuỗi bằng thao tác
L = [i for i in range [1, 1000] if i%3 == 0]
5________số 8Nó cũng có thể được thực hiện với phương pháp
L = [i for i in range [1, 1000] if i%3 == 0]
6L = [i for i in range [1, 1000] if i%3 == 0]
0L = [i for i in range [1, 1000] if i%3 == 0]
6 nối các chuỗi nhanh hơn hoạt động của L = [i for i in range [1, 1000] if i%3 == 0]
5 vì các toán tử L = [i for i in range [1, 1000] if i%3 == 0]
5 tạo một chuỗi mới và sau đó sao chép nội dung cũ ở mỗi bước. Nhưng L = [i for i in range [1, 1000] if i%3 == 0]
6 không hoạt động theo cách đóSử dụng máy phát điện
Nếu bạn có một lượng lớn dữ liệu trong danh sách của mình và bạn cần sử dụng một dữ liệu tại một thời điểm và một lần thì hãy sử dụng
a = 2
b = 3
c = 5
d = 7
1s. Nó sẽ giúp bạn tiết kiệm thời gianNó có vẻ hiệu quả, nhưng nó không
Xem đoạn mã dưới đây
L = [i for i in range [1, 1000] if i%3 == 0]
6Đoạn mã trên có vẻ hiệu quả vì nó được sử dụng để xóa dữ liệu trùng lặp. Nhưng thực tế là mã không hiệu quả. Đừng quên rằng việc chuyển đổi một danh sách thành tập hợp cần có thời gian. Vì vậy, mã này sẽ hoạt động tốt hơn mã trước
L = [i for i in range [1, 1000] if i%3 == 0]
7Không sử dụng thao tác dấu chấm
Cố gắng tránh thao tác dấu chấm. Xem chương trình bên dưới
L = [i for i in range [1, 1000] if i%3 == 0]
8Thay vì viết mã kiểu trên như thế này
L = [i for i in range [1, 1000] if i%3 == 0]
9Bởi vì khi bạn gọi một hàm bằng cách sử dụng
a = 2
b = 3
c = 5
d = 7
2 [dấu chấm], trước tiên, nó sẽ gọi a = 2
b = 3
c = 5
d = 7
3 hoặc a = 2
b = 3
c = 5
d = 7
4, sau đó sử dụng thao tác từ điển gây tốn thời gian. Vì vậy, hãy thử sử dụng a = 2
b = 3
c = 5
d = 7
5Sử dụng 1 cho vòng lặp vô cực
Sử dụng
a = 2
b = 3
c = 5
d = 7
6 thay vì a = 2
b = 3
c = 5
d = 7
7. Nó sẽ giảm một số thời gian chạyHãy thử một cách tiếp cận khác
Hãy thử những cách mới để viết mã của bạn một cách hiệu quả. Xem đoạn mã dưới đây
L = [i for i in range [1, 1000] if i%3 == 0]
0Thay vì đoạn mã trên, bạn có thể viết
L = [i for i in range [1, 1000] if i%3 == 0]
1Đối với tốc độ chậm của python, một số dự án đã được thực hiện để giảm thời gian chạy. Pypy và Numba hai trong số họ. Trong hầu hết các cuộc thi lập trình, bạn sẽ thấy pypy nếu nó cho phép python. Các ứng dụng này sẽ làm giảm thời gian chạy chương trình của bạn
Sử dụng các thư viện đặc biệt để xử lý các tập dữ liệu lớn
C/C++ nhanh hơn trăn. Vì vậy, nhiều gói và mô-đun đã được viết bằng C/C++ mà bạn có thể sử dụng trong chương trình python của mình.
a = 2
b = 3
c = 5
d = 7
8, a = 2
b = 3
c = 5
d = 7
9 và a, b, c, d = 2, 3, 5, 7
0 là ba trong số chúng và phổ biến để xử lý các tập dữ liệu lớnSử dụng phiên bản mới nhất của python
Python được cập nhật và nâng cấp thường xuyên và mọi bản phát hành đều nhanh hơn và tối ưu hơn. Vì vậy, hãy luôn sử dụng phiên bản mới nhất của python
Đây là một số mẹo để giảm thời gian chạy mã python. Có một vài kỹ thuật khác mà bạn có thể sử dụng. Sử dụng một công cụ tìm kiếm để tìm những thứ đó và viết mã hiệu quả