Computer >> Máy Tính >  >> Lập trình >> Python

Các phương pháp hay nhất để sử dụng vòng lặp trong Python là gì?


Đây là một câu hỏi bất khả tri về ngôn ngữ. Vòng lặp có ở hầu hết mọi ngôn ngữ và các nguyên tắc giống nhau được áp dụng ở mọi nơi. Bạn cần nhận ra rằng các trình biên dịch thực hiện hầu hết các công việc nặng nhọc khi nói đến tối ưu hóa vòng lặp, nhưng bạn là một lập trình viên cũng cần giữ cho các vòng lặp của mình được tối ưu hóa.

Điều quan trọng là nhận ra rằng mọi thứ bạn đặt trong một vòng lặp đều được thực thi cho mỗi lần lặp lại vòng lặp. Chìa khóa để tối ưu hóa các vòng lặp là giảm thiểu những gì chúng làm. Ngay cả những thao tác tưởng chừng rất nhanh cũng sẽ mất nhiều thời gian nếu lặp đi lặp lại nhiều lần. Việc thực thi một thao tác mất 1 micro giây một triệu lần sẽ mất 1 giây để hoàn thành.

Không thực thi những thứ như len (list) bên trong vòng lặp hoặc ngay cả trong điều kiện bắt đầu của nó.

ví dụ

a = [i for i in range(1000000)]
length = len(a)
for i in a:
   print(i - length)

nhanh hơn nhiều so với

a = [i for i in range(1000000)]
for i in a:
   print(i - len(a))

Bạn cũng có thể sử dụng các kỹ thuật như Mở vòng lặp (https://en.wikipedia.org/wiki/Loop_unrolling), là kỹ thuật chuyển đổi vòng lặp cố gắng tối ưu hóa tốc độ thực thi của chương trình với chi phí là kích thước nhị phân của nó, đây là một cách tiếp cận được gọi là sự cân bằng giữa không gian và thời gian.

Sử dụng các chức năng như bản đồ, bộ lọc, v.v. thay vì các vòng lặp for rõ ràng cũng có thể cung cấp một số cải tiến về hiệu suất.